﻿2026-06-09T09:52:58.9443175Z ##[group]Run ./traceable-reqs check --json
2026-06-09T09:52:58.9443489Z [36;1m./traceable-reqs check --json[0m
2026-06-09T09:52:58.9457969Z shell: /usr/bin/bash -e {0}
2026-06-09T09:52:58.9458213Z ##[endgroup]
2026-06-09T09:52:58.9906790Z {
2026-06-09T09:52:58.9907181Z   "schemaVersion": 1,
2026-06-09T09:52:58.9907563Z   "summary": {
2026-06-09T09:52:58.9908253Z     "requirementCount": 179,
2026-06-09T09:52:58.9908536Z     "completeCount": 179,
2026-06-09T09:52:58.9908884Z     "incompleteCount": 0,
2026-06-09T09:52:58.9909386Z     "findingCount": 0
2026-06-09T09:52:58.9909724Z   },
2026-06-09T09:52:58.9910015Z   "requirements": [
2026-06-09T09:52:58.9910339Z     {
2026-06-09T09:52:58.9910635Z       "id": "REQ-API-1",
2026-06-09T09:52:58.9911144Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-09T09:52:58.9911720Z       "requiredStages": [
2026-06-09T09:52:58.9912068Z         "impl",
2026-06-09T09:52:58.9912369Z         "unit",
2026-06-09T09:52:58.9912665Z         "int"
2026-06-09T09:52:58.9913017Z       ],
2026-06-09T09:52:58.9913293Z       "stages": {
2026-06-09T09:52:58.9913596Z         "doc": {
2026-06-09T09:52:58.9914258Z           "complete": false,
2026-06-09T09:52:58.9914803Z           "evidence": []
2026-06-09T09:52:58.9915275Z         },
2026-06-09T09:52:58.9915691Z         "impl": {
2026-06-09T09:52:58.9916222Z           "complete": true,
2026-06-09T09:52:58.9916611Z           "evidence": [
2026-06-09T09:52:58.9917098Z             {
2026-06-09T09:52:58.9917546Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:58.9933004Z               "line": 15
2026-06-09T09:52:58.9933342Z             }
2026-06-09T09:52:58.9933596Z           ]
2026-06-09T09:52:58.9933832Z         },
2026-06-09T09:52:58.9934071Z         "int": {
2026-06-09T09:52:58.9934330Z           "complete": true,
2026-06-09T09:52:58.9934619Z           "evidence": [
2026-06-09T09:52:58.9935585Z             {
2026-06-09T09:52:58.9935881Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:58.9936275Z               "line": 13
2026-06-09T09:52:58.9936558Z             }
2026-06-09T09:52:58.9936792Z           ]
2026-06-09T09:52:58.9937019Z         },
2026-06-09T09:52:58.9937248Z         "unit": {
2026-06-09T09:52:58.9937500Z           "complete": true,
2026-06-09T09:52:58.9937784Z           "evidence": [
2026-06-09T09:52:58.9938056Z             {
2026-06-09T09:52:58.9938332Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:58.9938671Z               "line": 442
2026-06-09T09:52:58.9939029Z             },
2026-06-09T09:52:58.9939272Z             {
2026-06-09T09:52:58.9939539Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:58.9939876Z               "line": 448
2026-06-09T09:52:58.9940145Z             },
2026-06-09T09:52:58.9940385Z             {
2026-06-09T09:52:58.9940652Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:58.9940986Z               "line": 515
2026-06-09T09:52:58.9941267Z             }
2026-06-09T09:52:58.9941509Z           ]
2026-06-09T09:52:58.9941734Z         }
2026-06-09T09:52:58.9941972Z       }
2026-06-09T09:52:58.9942197Z     },
2026-06-09T09:52:58.9942430Z     {
2026-06-09T09:52:58.9942668Z       "id": "REQ-API-2",
2026-06-09T09:52:58.9943124Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-09T09:52:58.9943650Z       "requiredStages": [
2026-06-09T09:52:58.9943931Z         "impl",
2026-06-09T09:52:58.9944184Z         "unit",
2026-06-09T09:52:58.9944441Z         "int"
2026-06-09T09:52:58.9944684Z       ],
2026-06-09T09:52:58.9944932Z       "stages": {
2026-06-09T09:52:58.9945169Z         "doc": {
2026-06-09T09:52:58.9945429Z           "complete": false,
2026-06-09T09:52:58.9945739Z           "evidence": []
2026-06-09T09:52:58.9946001Z         },
2026-06-09T09:52:58.9946244Z         "impl": {
2026-06-09T09:52:58.9946507Z           "complete": true,
2026-06-09T09:52:58.9946822Z           "evidence": [
2026-06-09T09:52:58.9947085Z             {
2026-06-09T09:52:58.9947705Z               "path": "crates/spt-store/src/history.rs",
2026-06-09T09:52:58.9948074Z               "line": 15
2026-06-09T09:52:58.9948344Z             },
2026-06-09T09:52:58.9948591Z             {
2026-06-09T09:52:58.9948873Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:58.9949318Z               "line": 20
2026-06-09T09:52:58.9949740Z             },
2026-06-09T09:52:58.9949985Z             {
2026-06-09T09:52:58.9950295Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:58.9950659Z               "line": 139
2026-06-09T09:52:58.9950935Z             },
2026-06-09T09:52:58.9951178Z             {
2026-06-09T09:52:58.9951468Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9951837Z               "line": 21
2026-06-09T09:52:58.9952102Z             },
2026-06-09T09:52:58.9952350Z             {
2026-06-09T09:52:58.9952642Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9953004Z               "line": 38
2026-06-09T09:52:58.9953280Z             },
2026-06-09T09:52:58.9953519Z             {
2026-06-09T09:52:58.9953800Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9954167Z               "line": 190
2026-06-09T09:52:58.9954443Z             },
2026-06-09T09:52:58.9954687Z             {
2026-06-09T09:52:58.9954992Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9955350Z               "line": 232
2026-06-09T09:52:58.9955619Z             },
2026-06-09T09:52:58.9955870Z             {
2026-06-09T09:52:58.9956166Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9956528Z               "line": 262
2026-06-09T09:52:58.9956809Z             },
2026-06-09T09:52:58.9957063Z             {
2026-06-09T09:52:58.9957335Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:58.9957701Z               "line": 17
2026-06-09T09:52:58.9957979Z             },
2026-06-09T09:52:58.9958227Z             {
2026-06-09T09:52:58.9958525Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:58.9958881Z               "line": 30
2026-06-09T09:52:58.9959239Z             },
2026-06-09T09:52:58.9959496Z             {
2026-06-09T09:52:58.9959777Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:58.9960130Z               "line": 63
2026-06-09T09:52:58.9960411Z             },
2026-06-09T09:52:58.9960654Z             {
2026-06-09T09:52:58.9960944Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:58.9961299Z               "line": 76
2026-06-09T09:52:58.9961481Z             }
2026-06-09T09:52:58.9961671Z           ]
2026-06-09T09:52:58.9961919Z         },
2026-06-09T09:52:58.9962162Z         "int": {
2026-06-09T09:52:58.9962411Z           "complete": true,
2026-06-09T09:52:58.9962706Z           "evidence": [
2026-06-09T09:52:58.9962973Z             {
2026-06-09T09:52:58.9963192Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:58.9963441Z               "line": 14
2026-06-09T09:52:58.9963632Z             },
2026-06-09T09:52:58.9963797Z             {
2026-06-09T09:52:58.9963992Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:58.9964244Z               "line": 183
2026-06-09T09:52:58.9964427Z             }
2026-06-09T09:52:58.9964593Z           ]
2026-06-09T09:52:58.9964751Z         },
2026-06-09T09:52:58.9964908Z         "unit": {
2026-06-09T09:52:58.9965079Z           "complete": true,
2026-06-09T09:52:58.9965276Z           "evidence": [
2026-06-09T09:52:58.9965451Z             {
2026-06-09T09:52:58.9965652Z               "path": "crates/spt-store/src/history.rs",
2026-06-09T09:52:58.9965905Z               "line": 42
2026-06-09T09:52:58.9966099Z             },
2026-06-09T09:52:58.9966261Z             {
2026-06-09T09:52:58.9966444Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:58.9966688Z               "line": 254
2026-06-09T09:52:58.9966869Z             },
2026-06-09T09:52:58.9967031Z             {
2026-06-09T09:52:58.9967374Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9967613Z               "line": 438
2026-06-09T09:52:58.9967794Z             },
2026-06-09T09:52:58.9967956Z             {
2026-06-09T09:52:58.9968153Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9968394Z               "line": 449
2026-06-09T09:52:58.9968839Z             },
2026-06-09T09:52:58.9969099Z             {
2026-06-09T09:52:58.9969293Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9969536Z               "line": 581
2026-06-09T09:52:58.9969717Z             },
2026-06-09T09:52:58.9969880Z             {
2026-06-09T09:52:58.9970076Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9970312Z               "line": 593
2026-06-09T09:52:58.9970494Z             },
2026-06-09T09:52:58.9970656Z             {
2026-06-09T09:52:58.9970847Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:58.9971082Z               "line": 141
2026-06-09T09:52:58.9971276Z             },
2026-06-09T09:52:58.9971444Z             {
2026-06-09T09:52:58.9971632Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:58.9971873Z               "line": 185
2026-06-09T09:52:58.9972056Z             }
2026-06-09T09:52:58.9972216Z           ]
2026-06-09T09:52:58.9972385Z         }
2026-06-09T09:52:58.9972545Z       }
2026-06-09T09:52:58.9972709Z     },
2026-06-09T09:52:58.9972870Z     {
2026-06-09T09:52:58.9973047Z       "id": "REQ-API-3",
2026-06-09T09:52:58.9973296Z       "title": "commune/signoff are file-drops, not commands",
2026-06-09T09:52:58.9973577Z       "requiredStages": [
2026-06-09T09:52:58.9973776Z         "impl",
2026-06-09T09:52:58.9973949Z         "unit",
2026-06-09T09:52:58.9974114Z         "int"
2026-06-09T09:52:58.9974283Z       ],
2026-06-09T09:52:58.9974448Z       "stages": {
2026-06-09T09:52:58.9974634Z         "doc": {
2026-06-09T09:52:58.9974828Z           "complete": false,
2026-06-09T09:52:58.9975034Z           "evidence": []
2026-06-09T09:52:58.9975231Z         },
2026-06-09T09:52:58.9975401Z         "impl": {
2026-06-09T09:52:58.9975583Z           "complete": true,
2026-06-09T09:52:58.9975787Z           "evidence": [
2026-06-09T09:52:58.9975988Z             {
2026-06-09T09:52:58.9976184Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:58.9976446Z               "line": 27
2026-06-09T09:52:58.9976631Z             },
2026-06-09T09:52:58.9976797Z             {
2026-06-09T09:52:58.9977000Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9977257Z               "line": 372
2026-06-09T09:52:58.9977434Z             }
2026-06-09T09:52:58.9977619Z           ]
2026-06-09T09:52:58.9977863Z         },
2026-06-09T09:52:58.9978107Z         "int": {
2026-06-09T09:52:58.9978364Z           "complete": true,
2026-06-09T09:52:58.9978659Z           "evidence": [
2026-06-09T09:52:58.9978926Z             {
2026-06-09T09:52:58.9979289Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:58.9979679Z               "line": 257
2026-06-09T09:52:58.9979948Z             }
2026-06-09T09:52:58.9980191Z           ]
2026-06-09T09:52:58.9980425Z         },
2026-06-09T09:52:58.9980664Z         "unit": {
2026-06-09T09:52:58.9980925Z           "complete": true,
2026-06-09T09:52:58.9981212Z           "evidence": [
2026-06-09T09:52:58.9981488Z             {
2026-06-09T09:52:58.9981784Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:58.9982150Z               "line": 242
2026-06-09T09:52:58.9982419Z             },
2026-06-09T09:52:58.9982664Z             {
2026-06-09T09:52:58.9982945Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:58.9983316Z               "line": 622
2026-06-09T09:52:58.9983598Z             }
2026-06-09T09:52:58.9983841Z           ]
2026-06-09T09:52:58.9984088Z         }
2026-06-09T09:52:58.9984332Z       }
2026-06-09T09:52:58.9984561Z     },
2026-06-09T09:52:58.9984800Z     {
2026-06-09T09:52:58.9985036Z       "id": "REQ-ARCH-1",
2026-06-09T09:52:58.9985566Z       "title": "Many small acyclically-layered crates",
2026-06-09T09:52:58.9985965Z       "requiredStages": [
2026-06-09T09:52:58.9986181Z         "impl"
2026-06-09T09:52:58.9986357Z       ],
2026-06-09T09:52:58.9986519Z       "stages": {
2026-06-09T09:52:58.9986692Z         "doc": {
2026-06-09T09:52:58.9986991Z           "complete": false,
2026-06-09T09:52:58.9987191Z           "evidence": []
2026-06-09T09:52:58.9987367Z         },
2026-06-09T09:52:58.9987626Z         "impl": {
2026-06-09T09:52:58.9987822Z           "complete": true,
2026-06-09T09:52:58.9988028Z           "evidence": [
2026-06-09T09:52:58.9988223Z             {
2026-06-09T09:52:58.9988409Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-09T09:52:58.9988653Z               "line": 16
2026-06-09T09:52:58.9988837Z             },
2026-06-09T09:52:58.9989081Z             {
2026-06-09T09:52:58.9989278Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-09T09:52:58.9989515Z               "line": 12
2026-06-09T09:52:58.9989715Z             },
2026-06-09T09:52:58.9989897Z             {
2026-06-09T09:52:58.9990091Z               "path": "crates/spt-store/src/lib.rs",
2026-06-09T09:52:58.9990328Z               "line": 12
2026-06-09T09:52:58.9990508Z             }
2026-06-09T09:52:58.9990676Z           ]
2026-06-09T09:52:58.9990847Z         },
2026-06-09T09:52:58.9991005Z         "int": {
2026-06-09T09:52:58.9991181Z           "complete": false,
2026-06-09T09:52:58.9991385Z           "evidence": []
2026-06-09T09:52:58.9991582Z         },
2026-06-09T09:52:58.9991743Z         "unit": {
2026-06-09T09:52:58.9991920Z           "complete": false,
2026-06-09T09:52:58.9992120Z           "evidence": []
2026-06-09T09:52:58.9992306Z         }
2026-06-09T09:52:58.9992469Z       }
2026-06-09T09:52:58.9992625Z     },
2026-06-09T09:52:58.9992786Z     {
2026-06-09T09:52:58.9992951Z       "id": "REQ-ARCH-2",
2026-06-09T09:52:58.9993229Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-09T09:52:58.9993547Z       "requiredStages": [
2026-06-09T09:52:58.9993738Z         "impl"
2026-06-09T09:52:58.9993905Z       ],
2026-06-09T09:52:58.9994063Z       "stages": {
2026-06-09T09:52:58.9994234Z         "doc": {
2026-06-09T09:52:58.9994496Z           "complete": false,
2026-06-09T09:52:58.9994697Z           "evidence": []
2026-06-09T09:52:58.9994892Z         },
2026-06-09T09:52:58.9995055Z         "impl": {
2026-06-09T09:52:58.9995235Z           "complete": true,
2026-06-09T09:52:58.9995431Z           "evidence": [
2026-06-09T09:52:58.9995610Z             {
2026-06-09T09:52:58.9995807Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-09T09:52:58.9996050Z               "line": 18
2026-06-09T09:52:58.9996235Z             }
2026-06-09T09:52:58.9996402Z           ]
2026-06-09T09:52:58.9996574Z         },
2026-06-09T09:52:58.9996731Z         "int": {
2026-06-09T09:52:58.9996907Z           "complete": false,
2026-06-09T09:52:59.0016817Z           "evidence": []
2026-06-09T09:52:59.0017069Z         },
2026-06-09T09:52:59.0017251Z         "unit": {
2026-06-09T09:52:59.0017442Z           "complete": false,
2026-06-09T09:52:59.0017655Z           "evidence": []
2026-06-09T09:52:59.0017847Z         }
2026-06-09T09:52:59.0018023Z       }
2026-06-09T09:52:59.0018176Z     },
2026-06-09T09:52:59.0018352Z     {
2026-06-09T09:52:59.0018538Z       "id": "REQ-ARCH-3",
2026-06-09T09:52:59.0018871Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-09T09:52:59.0019297Z       "requiredStages": [
2026-06-09T09:52:59.0019485Z         "impl",
2026-06-09T09:52:59.0019660Z         "unit"
2026-06-09T09:52:59.0019832Z       ],
2026-06-09T09:52:59.0019999Z       "stages": {
2026-06-09T09:52:59.0020184Z         "doc": {
2026-06-09T09:52:59.0020371Z           "complete": false,
2026-06-09T09:52:59.0020580Z           "evidence": []
2026-06-09T09:52:59.0020786Z         },
2026-06-09T09:52:59.0020967Z         "impl": {
2026-06-09T09:52:59.0021148Z           "complete": true,
2026-06-09T09:52:59.0021578Z           "evidence": [
2026-06-09T09:52:59.0021776Z             {
2026-06-09T09:52:59.0022000Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T09:52:59.0022275Z               "line": 34
2026-06-09T09:52:59.0022465Z             },
2026-06-09T09:52:59.0022637Z             {
2026-06-09T09:52:59.0022990Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T09:52:59.0023243Z               "line": 41
2026-06-09T09:52:59.0023428Z             }
2026-06-09T09:52:59.0023600Z           ]
2026-06-09T09:52:59.0023776Z         },
2026-06-09T09:52:59.0023934Z         "int": {
2026-06-09T09:52:59.0024135Z           "complete": false,
2026-06-09T09:52:59.0024348Z           "evidence": []
2026-06-09T09:52:59.0024543Z         },
2026-06-09T09:52:59.0024721Z         "unit": {
2026-06-09T09:52:59.0024909Z           "complete": true,
2026-06-09T09:52:59.0025108Z           "evidence": [
2026-06-09T09:52:59.0025294Z             {
2026-06-09T09:52:59.0025509Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T09:52:59.0025772Z               "line": 51
2026-06-09T09:52:59.0025966Z             },
2026-06-09T09:52:59.0026148Z             {
2026-06-09T09:52:59.0026368Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T09:52:59.0026615Z               "line": 71
2026-06-09T09:52:59.0026815Z             },
2026-06-09T09:52:59.0026997Z             {
2026-06-09T09:52:59.0027215Z               "path": "crates/spt-proto/src/version.rs",
2026-06-09T09:52:59.0027468Z               "line": 83
2026-06-09T09:52:59.0027644Z             }
2026-06-09T09:52:59.0027797Z           ]
2026-06-09T09:52:59.0027954Z         }
2026-06-09T09:52:59.0028121Z       }
2026-06-09T09:52:59.0028287Z     },
2026-06-09T09:52:59.0028431Z     {
2026-06-09T09:52:59.0028588Z       "id": "REQ-ARCH-4",
2026-06-09T09:52:59.0028864Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-09T09:52:59.0029256Z       "requiredStages": [
2026-06-09T09:52:59.0029464Z         "impl",
2026-06-09T09:52:59.0029636Z         "unit"
2026-06-09T09:52:59.0029819Z       ],
2026-06-09T09:52:59.0029996Z       "stages": {
2026-06-09T09:52:59.0030177Z         "doc": {
2026-06-09T09:52:59.0030368Z           "complete": false,
2026-06-09T09:52:59.0030578Z           "evidence": []
2026-06-09T09:52:59.0030782Z         },
2026-06-09T09:52:59.0030955Z         "impl": {
2026-06-09T09:52:59.0031136Z           "complete": true,
2026-06-09T09:52:59.0031341Z           "evidence": [
2026-06-09T09:52:59.0031542Z             {
2026-06-09T09:52:59.0031750Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0031988Z               "line": 82
2026-06-09T09:52:59.0032171Z             },
2026-06-09T09:52:59.0032341Z             {
2026-06-09T09:52:59.0032536Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0032782Z               "line": 96
2026-06-09T09:52:59.0032968Z             },
2026-06-09T09:52:59.0033145Z             {
2026-06-09T09:52:59.0033354Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0033593Z               "line": 116
2026-06-09T09:52:59.0033779Z             },
2026-06-09T09:52:59.0033950Z             {
2026-06-09T09:52:59.0034142Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0034385Z               "line": 131
2026-06-09T09:52:59.0034603Z             },
2026-06-09T09:52:59.0034772Z             {
2026-06-09T09:52:59.0034978Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0035234Z               "line": 181
2026-06-09T09:52:59.0035421Z             }
2026-06-09T09:52:59.0035592Z           ]
2026-06-09T09:52:59.0035750Z         },
2026-06-09T09:52:59.0035906Z         "int": {
2026-06-09T09:52:59.0036088Z           "complete": false,
2026-06-09T09:52:59.0036298Z           "evidence": []
2026-06-09T09:52:59.0036488Z         },
2026-06-09T09:52:59.0036657Z         "unit": {
2026-06-09T09:52:59.0036851Z           "complete": true,
2026-06-09T09:52:59.0037160Z           "evidence": [
2026-06-09T09:52:59.0037342Z             {
2026-06-09T09:52:59.0037548Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0037789Z               "line": 242
2026-06-09T09:52:59.0037981Z             },
2026-06-09T09:52:59.0038155Z             {
2026-06-09T09:52:59.0038343Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0038672Z               "line": 252
2026-06-09T09:52:59.0038852Z             },
2026-06-09T09:52:59.0039095Z             {
2026-06-09T09:52:59.0039296Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0039531Z               "line": 263
2026-06-09T09:52:59.0039711Z             },
2026-06-09T09:52:59.0039879Z             {
2026-06-09T09:52:59.0040077Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0040313Z               "line": 274
2026-06-09T09:52:59.0040490Z             },
2026-06-09T09:52:59.0040661Z             {
2026-06-09T09:52:59.0040862Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0041124Z               "line": 286
2026-06-09T09:52:59.0041333Z             },
2026-06-09T09:52:59.0041487Z             {
2026-06-09T09:52:59.0041676Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0041915Z               "line": 299
2026-06-09T09:52:59.0042107Z             },
2026-06-09T09:52:59.0042264Z             {
2026-06-09T09:52:59.0042450Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0042679Z               "line": 310
2026-06-09T09:52:59.0042859Z             },
2026-06-09T09:52:59.0043020Z             {
2026-06-09T09:52:59.0043204Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0043447Z               "line": 327
2026-06-09T09:52:59.0043623Z             },
2026-06-09T09:52:59.0043786Z             {
2026-06-09T09:52:59.0043962Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0044214Z               "line": 358
2026-06-09T09:52:59.0044397Z             }
2026-06-09T09:52:59.0044573Z           ]
2026-06-09T09:52:59.0044739Z         }
2026-06-09T09:52:59.0044916Z       }
2026-06-09T09:52:59.0045091Z     },
2026-06-09T09:52:59.0045265Z     {
2026-06-09T09:52:59.0045444Z       "id": "REQ-CLI-1",
2026-06-09T09:52:59.0046638Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-09T09:52:59.0047889Z       "requiredStages": [
2026-06-09T09:52:59.0048088Z         "impl",
2026-06-09T09:52:59.0048259Z         "unit"
2026-06-09T09:52:59.0048420Z       ],
2026-06-09T09:52:59.0048574Z       "stages": {
2026-06-09T09:52:59.0048759Z         "doc": {
2026-06-09T09:52:59.0049017Z           "complete": false,
2026-06-09T09:52:59.0049237Z           "evidence": []
2026-06-09T09:52:59.0049437Z         },
2026-06-09T09:52:59.0049613Z         "impl": {
2026-06-09T09:52:59.0049823Z           "complete": true,
2026-06-09T09:52:59.0050033Z           "evidence": [
2026-06-09T09:52:59.0050223Z             {
2026-06-09T09:52:59.0050425Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0050665Z               "line": 193
2026-06-09T09:52:59.0050850Z             },
2026-06-09T09:52:59.0051016Z             {
2026-06-09T09:52:59.0051207Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0051451Z               "line": 780
2026-06-09T09:52:59.0051660Z             },
2026-06-09T09:52:59.0051827Z             {
2026-06-09T09:52:59.0052009Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0052236Z               "line": 1082
2026-06-09T09:52:59.0052418Z             },
2026-06-09T09:52:59.0052590Z             {
2026-06-09T09:52:59.0052766Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0053114Z               "line": 2188
2026-06-09T09:52:59.0053315Z             }
2026-06-09T09:52:59.0053485Z           ]
2026-06-09T09:52:59.0053656Z         },
2026-06-09T09:52:59.0053840Z         "int": {
2026-06-09T09:52:59.0054037Z           "complete": false,
2026-06-09T09:52:59.0054261Z           "evidence": []
2026-06-09T09:52:59.0054580Z         },
2026-06-09T09:52:59.0054788Z         "unit": {
2026-06-09T09:52:59.0054994Z           "complete": true,
2026-06-09T09:52:59.0055195Z           "evidence": [
2026-06-09T09:52:59.0055385Z             {
2026-06-09T09:52:59.0055572Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0055811Z               "line": 5312
2026-06-09T09:52:59.0055999Z             }
2026-06-09T09:52:59.0056171Z           ]
2026-06-09T09:52:59.0056330Z         }
2026-06-09T09:52:59.0056498Z       }
2026-06-09T09:52:59.0056659Z     },
2026-06-09T09:52:59.0056818Z     {
2026-06-09T09:52:59.0056988Z       "id": "REQ-CLI-2",
2026-06-09T09:52:59.0057805Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-09T09:52:59.0058644Z       "requiredStages": [
2026-06-09T09:52:59.0058866Z         "impl",
2026-06-09T09:52:59.0059139Z         "unit"
2026-06-09T09:52:59.0059329Z       ],
2026-06-09T09:52:59.0059496Z       "stages": {
2026-06-09T09:52:59.0059673Z         "doc": {
2026-06-09T09:52:59.0059848Z           "complete": false,
2026-06-09T09:52:59.0060050Z           "evidence": []
2026-06-09T09:52:59.0060239Z         },
2026-06-09T09:52:59.0060402Z         "impl": {
2026-06-09T09:52:59.0060583Z           "complete": true,
2026-06-09T09:52:59.0060788Z           "evidence": [
2026-06-09T09:52:59.0060976Z             {
2026-06-09T09:52:59.0061173Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0061438Z               "line": 324
2026-06-09T09:52:59.0061629Z             },
2026-06-09T09:52:59.0061791Z             {
2026-06-09T09:52:59.0061997Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-09T09:52:59.0062264Z               "line": 65
2026-06-09T09:52:59.0062467Z             },
2026-06-09T09:52:59.0062649Z             {
2026-06-09T09:52:59.0062849Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.0063111Z               "line": 239
2026-06-09T09:52:59.0063317Z             },
2026-06-09T09:52:59.0063499Z             {
2026-06-09T09:52:59.0063698Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0063937Z               "line": 337
2026-06-09T09:52:59.0064116Z             },
2026-06-09T09:52:59.0064277Z             {
2026-06-09T09:52:59.0064448Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0064672Z               "line": 823
2026-06-09T09:52:59.0064854Z             },
2026-06-09T09:52:59.0065024Z             {
2026-06-09T09:52:59.0065216Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0065431Z               "line": 1273
2026-06-09T09:52:59.0065612Z             },
2026-06-09T09:52:59.0065774Z             {
2026-06-09T09:52:59.0065955Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0066179Z               "line": 1335
2026-06-09T09:52:59.0066371Z             },
2026-06-09T09:52:59.0066536Z             {
2026-06-09T09:52:59.0066707Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0066933Z               "line": 1396
2026-06-09T09:52:59.0067111Z             }
2026-06-09T09:52:59.0067277Z           ]
2026-06-09T09:52:59.0067444Z         },
2026-06-09T09:52:59.0067611Z         "int": {
2026-06-09T09:52:59.0067787Z           "complete": false,
2026-06-09T09:52:59.0067993Z           "evidence": []
2026-06-09T09:52:59.0068197Z         },
2026-06-09T09:52:59.0068375Z         "unit": {
2026-06-09T09:52:59.0068540Z           "complete": true,
2026-06-09T09:52:59.0068736Z           "evidence": [
2026-06-09T09:52:59.0069098Z             {
2026-06-09T09:52:59.0069295Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.0069540Z               "line": 309
2026-06-09T09:52:59.0069718Z             },
2026-06-09T09:52:59.0069879Z             {
2026-06-09T09:52:59.0070056Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0070399Z               "line": 5450
2026-06-09T09:52:59.0070586Z             }
2026-06-09T09:52:59.0070747Z           ]
2026-06-09T09:52:59.0070916Z         }
2026-06-09T09:52:59.0071066Z       }
2026-06-09T09:52:59.0071230Z     },
2026-06-09T09:52:59.0071381Z     {
2026-06-09T09:52:59.0071540Z       "id": "REQ-CLI-3",
2026-06-09T09:52:59.0072346Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-09T09:52:59.0073190Z       "requiredStages": [
2026-06-09T09:52:59.0073381Z         "impl",
2026-06-09T09:52:59.0073543Z         "unit"
2026-06-09T09:52:59.0073705Z       ],
2026-06-09T09:52:59.0073867Z       "stages": {
2026-06-09T09:52:59.0074035Z         "doc": {
2026-06-09T09:52:59.0074200Z           "complete": false,
2026-06-09T09:52:59.0074403Z           "evidence": []
2026-06-09T09:52:59.0074572Z         },
2026-06-09T09:52:59.0074729Z         "impl": {
2026-06-09T09:52:59.0074904Z           "complete": true,
2026-06-09T09:52:59.0075090Z           "evidence": [
2026-06-09T09:52:59.0075270Z             {
2026-06-09T09:52:59.0075447Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0075677Z               "line": 774
2026-06-09T09:52:59.0075890Z             }
2026-06-09T09:52:59.0076048Z           ]
2026-06-09T09:52:59.0076205Z         },
2026-06-09T09:52:59.0076358Z         "int": {
2026-06-09T09:52:59.0076539Z           "complete": false,
2026-06-09T09:52:59.0076739Z           "evidence": []
2026-06-09T09:52:59.0076926Z         },
2026-06-09T09:52:59.0077082Z         "unit": {
2026-06-09T09:52:59.0077258Z           "complete": true,
2026-06-09T09:52:59.0077446Z           "evidence": [
2026-06-09T09:52:59.0077627Z             {
2026-06-09T09:52:59.0077808Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0078048Z               "line": 5277
2026-06-09T09:52:59.0078234Z             }
2026-06-09T09:52:59.0078391Z           ]
2026-06-09T09:52:59.0078549Z         }
2026-06-09T09:52:59.0078715Z       }
2026-06-09T09:52:59.0078863Z     },
2026-06-09T09:52:59.0079081Z     {
2026-06-09T09:52:59.0079245Z       "id": "REQ-CONSENT-1",
2026-06-09T09:52:59.0080240Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-09T09:52:59.0081265Z       "requiredStages": [
2026-06-09T09:52:59.0081452Z         "impl",
2026-06-09T09:52:59.0081617Z         "unit"
2026-06-09T09:52:59.0081781Z       ],
2026-06-09T09:52:59.0081937Z       "stages": {
2026-06-09T09:52:59.0082110Z         "doc": {
2026-06-09T09:52:59.0082298Z           "complete": false,
2026-06-09T09:52:59.0082497Z           "evidence": []
2026-06-09T09:52:59.0082682Z         },
2026-06-09T09:52:59.0082849Z         "impl": {
2026-06-09T09:52:59.0083025Z           "complete": true,
2026-06-09T09:52:59.0083216Z           "evidence": [
2026-06-09T09:52:59.0083394Z             {
2026-06-09T09:52:59.0083588Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0083836Z               "line": 27
2026-06-09T09:52:59.0084023Z             },
2026-06-09T09:52:59.0084184Z             {
2026-06-09T09:52:59.0084375Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0084609Z               "line": 75
2026-06-09T09:52:59.0084900Z             },
2026-06-09T09:52:59.0085057Z             {
2026-06-09T09:52:59.0085251Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0085487Z               "line": 98
2026-06-09T09:52:59.0085664Z             },
2026-06-09T09:52:59.0085830Z             {
2026-06-09T09:52:59.0086131Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0086370Z               "line": 82
2026-06-09T09:52:59.0086551Z             },
2026-06-09T09:52:59.0086713Z             {
2026-06-09T09:52:59.0086900Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0087137Z               "line": 109
2026-06-09T09:52:59.0092539Z             },
2026-06-09T09:52:59.0092764Z             {
2026-06-09T09:52:59.0092987Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0093247Z               "line": 127
2026-06-09T09:52:59.0093437Z             },
2026-06-09T09:52:59.0093605Z             {
2026-06-09T09:52:59.0093828Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0094072Z               "line": 142
2026-06-09T09:52:59.0094254Z             },
2026-06-09T09:52:59.0094415Z             {
2026-06-09T09:52:59.0094607Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0094835Z               "line": 5013
2026-06-09T09:52:59.0095020Z             }
2026-06-09T09:52:59.0095174Z           ]
2026-06-09T09:52:59.0095330Z         },
2026-06-09T09:52:59.0095480Z         "int": {
2026-06-09T09:52:59.0095654Z           "complete": false,
2026-06-09T09:52:59.0095859Z           "evidence": []
2026-06-09T09:52:59.0096052Z         },
2026-06-09T09:52:59.0096210Z         "unit": {
2026-06-09T09:52:59.0096395Z           "complete": true,
2026-06-09T09:52:59.0096587Z           "evidence": [
2026-06-09T09:52:59.0096768Z             {
2026-06-09T09:52:59.0096967Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0097211Z               "line": 334
2026-06-09T09:52:59.0097397Z             },
2026-06-09T09:52:59.0097559Z             {
2026-06-09T09:52:59.0097751Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0097988Z               "line": 380
2026-06-09T09:52:59.0098170Z             },
2026-06-09T09:52:59.0098330Z             {
2026-06-09T09:52:59.0098515Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0098762Z               "line": 391
2026-06-09T09:52:59.0099029Z             },
2026-06-09T09:52:59.0099196Z             {
2026-06-09T09:52:59.0099392Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0099630Z               "line": 165
2026-06-09T09:52:59.0099806Z             },
2026-06-09T09:52:59.0099968Z             {
2026-06-09T09:52:59.0100154Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0100388Z               "line": 184
2026-06-09T09:52:59.0100574Z             },
2026-06-09T09:52:59.0100736Z             {
2026-06-09T09:52:59.0100933Z               "path": "crates/spt-store/src/grants.rs",
2026-06-09T09:52:59.0101178Z               "line": 204
2026-06-09T09:52:59.0101360Z             },
2026-06-09T09:52:59.0101531Z             {
2026-06-09T09:52:59.0101708Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0101942Z               "line": 5611
2026-06-09T09:52:59.0102141Z             }
2026-06-09T09:52:59.0102295Z           ]
2026-06-09T09:52:59.0102451Z         }
2026-06-09T09:52:59.0102624Z       }
2026-06-09T09:52:59.0102775Z     },
2026-06-09T09:52:59.0102934Z     {
2026-06-09T09:52:59.0103099Z       "id": "REQ-CONSENT-2",
2026-06-09T09:52:59.0104026Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-09T09:52:59.0104966Z       "requiredStages": [
2026-06-09T09:52:59.0105304Z         "impl",
2026-06-09T09:52:59.0105477Z         "unit"
2026-06-09T09:52:59.0105638Z       ],
2026-06-09T09:52:59.0105792Z       "stages": {
2026-06-09T09:52:59.0105957Z         "doc": {
2026-06-09T09:52:59.0106131Z           "complete": false,
2026-06-09T09:52:59.0106328Z           "evidence": []
2026-06-09T09:52:59.0106617Z         },
2026-06-09T09:52:59.0106775Z         "impl": {
2026-06-09T09:52:59.0106955Z           "complete": true,
2026-06-09T09:52:59.0107157Z           "evidence": [
2026-06-09T09:52:59.0107333Z             {
2026-06-09T09:52:59.0107532Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0107780Z               "line": 140
2026-06-09T09:52:59.0107962Z             },
2026-06-09T09:52:59.0108124Z             {
2026-06-09T09:52:59.0108316Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0108558Z               "line": 165
2026-06-09T09:52:59.0108739Z             },
2026-06-09T09:52:59.0108899Z             {
2026-06-09T09:52:59.0109183Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0109427Z               "line": 199
2026-06-09T09:52:59.0109599Z             },
2026-06-09T09:52:59.0109761Z             {
2026-06-09T09:52:59.0109947Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0110190Z               "line": 241
2026-06-09T09:52:59.0110400Z             },
2026-06-09T09:52:59.0110648Z             {
2026-06-09T09:52:59.0110878Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0111115Z               "line": 269
2026-06-09T09:52:59.0111296Z             },
2026-06-09T09:52:59.0111459Z             {
2026-06-09T09:52:59.0111653Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0111897Z               "line": 300
2026-06-09T09:52:59.0112076Z             },
2026-06-09T09:52:59.0112240Z             {
2026-06-09T09:52:59.0112420Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0112654Z               "line": 4878
2026-06-09T09:52:59.0112845Z             },
2026-06-09T09:52:59.0113016Z             {
2026-06-09T09:52:59.0113189Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0113423Z               "line": 4936
2026-06-09T09:52:59.0113602Z             }
2026-06-09T09:52:59.0113762Z           ]
2026-06-09T09:52:59.0113931Z         },
2026-06-09T09:52:59.0114083Z         "int": {
2026-06-09T09:52:59.0114262Z           "complete": false,
2026-06-09T09:52:59.0114463Z           "evidence": []
2026-06-09T09:52:59.0114643Z         },
2026-06-09T09:52:59.0114801Z         "unit": {
2026-06-09T09:52:59.0114977Z           "complete": true,
2026-06-09T09:52:59.0115169Z           "evidence": [
2026-06-09T09:52:59.0115364Z             {
2026-06-09T09:52:59.0115563Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0115807Z               "line": 419
2026-06-09T09:52:59.0115989Z             },
2026-06-09T09:52:59.0116155Z             {
2026-06-09T09:52:59.0116347Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0116590Z               "line": 436
2026-06-09T09:52:59.0116775Z             },
2026-06-09T09:52:59.0116941Z             {
2026-06-09T09:52:59.0117124Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0117364Z               "line": 472
2026-06-09T09:52:59.0117548Z             },
2026-06-09T09:52:59.0117712Z             {
2026-06-09T09:52:59.0117907Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.0118145Z               "line": 516
2026-06-09T09:52:59.0118335Z             },
2026-06-09T09:52:59.0118498Z             {
2026-06-09T09:52:59.0118679Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0118909Z               "line": 6506
2026-06-09T09:52:59.0119185Z             },
2026-06-09T09:52:59.0119346Z             {
2026-06-09T09:52:59.0119527Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0119753Z               "line": 6588
2026-06-09T09:52:59.0119936Z             }
2026-06-09T09:52:59.0120212Z           ]
2026-06-09T09:52:59.0120373Z         }
2026-06-09T09:52:59.0120531Z       }
2026-06-09T09:52:59.0120697Z     },
2026-06-09T09:52:59.0120855Z     {
2026-06-09T09:52:59.0121031Z       "id": "REQ-CONV-1",
2026-06-09T09:52:59.0122752Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-09T09:52:59.0124239Z       "requiredStages": [
2026-06-09T09:52:59.0124430Z         "impl",
2026-06-09T09:52:59.0124600Z         "unit"
2026-06-09T09:52:59.0124757Z       ],
2026-06-09T09:52:59.0124917Z       "stages": {
2026-06-09T09:52:59.0125109Z         "doc": {
2026-06-09T09:52:59.0125290Z           "complete": false,
2026-06-09T09:52:59.0125494Z           "evidence": []
2026-06-09T09:52:59.0125686Z         },
2026-06-09T09:52:59.0125852Z         "impl": {
2026-06-09T09:52:59.0126033Z           "complete": true,
2026-06-09T09:52:59.0126225Z           "evidence": [
2026-06-09T09:52:59.0126429Z             {
2026-06-09T09:52:59.0126630Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0126888Z               "line": 696
2026-06-09T09:52:59.0127069Z             },
2026-06-09T09:52:59.0127227Z             {
2026-06-09T09:52:59.0127429Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0127680Z               "line": 94
2026-06-09T09:52:59.0127861Z             },
2026-06-09T09:52:59.0128023Z             {
2026-06-09T09:52:59.0128224Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0128467Z               "line": 345
2026-06-09T09:52:59.0128657Z             },
2026-06-09T09:52:59.0128825Z             {
2026-06-09T09:52:59.0129107Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0129349Z               "line": 387
2026-06-09T09:52:59.0129530Z             },
2026-06-09T09:52:59.0129692Z             {
2026-06-09T09:52:59.0129887Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0130139Z               "line": 472
2026-06-09T09:52:59.0130327Z             },
2026-06-09T09:52:59.0130491Z             {
2026-06-09T09:52:59.0130685Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0130928Z               "line": 629
2026-06-09T09:52:59.0131110Z             },
2026-06-09T09:52:59.0131286Z             {
2026-06-09T09:52:59.0131482Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0131726Z               "line": 655
2026-06-09T09:52:59.0131911Z             },
2026-06-09T09:52:59.0132082Z             {
2026-06-09T09:52:59.0132274Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.0132536Z               "line": 369
2026-06-09T09:52:59.0132717Z             },
2026-06-09T09:52:59.0132887Z             {
2026-06-09T09:52:59.0133079Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T09:52:59.0133327Z               "line": 19
2026-06-09T09:52:59.0133497Z             }
2026-06-09T09:52:59.0133660Z           ]
2026-06-09T09:52:59.0133822Z         },
2026-06-09T09:52:59.0133979Z         "int": {
2026-06-09T09:52:59.0134155Z           "complete": false,
2026-06-09T09:52:59.0134356Z           "evidence": []
2026-06-09T09:52:59.0134543Z         },
2026-06-09T09:52:59.0134709Z         "unit": {
2026-06-09T09:52:59.0134882Z           "complete": true,
2026-06-09T09:52:59.0135084Z           "evidence": [
2026-06-09T09:52:59.0135265Z             {
2026-06-09T09:52:59.0135468Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0135716Z               "line": 990
2026-06-09T09:52:59.0135894Z             },
2026-06-09T09:52:59.0136165Z             {
2026-06-09T09:52:59.0136374Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T09:52:59.0136618Z               "line": 108
2026-06-09T09:52:59.0136800Z             },
2026-06-09T09:52:59.0136961Z             {
2026-06-09T09:52:59.0137148Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T09:52:59.0137481Z               "line": 134
2026-06-09T09:52:59.0137661Z             },
2026-06-09T09:52:59.0137825Z             {
2026-06-09T09:52:59.0138027Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-09T09:52:59.0138273Z               "line": 144
2026-06-09T09:52:59.0138451Z             }
2026-06-09T09:52:59.0138611Z           ]
2026-06-09T09:52:59.0138770Z         }
2026-06-09T09:52:59.0138926Z       }
2026-06-09T09:52:59.0139171Z     },
2026-06-09T09:52:59.0139327Z     {
2026-06-09T09:52:59.0139489Z       "id": "REQ-CONV-2",
2026-06-09T09:52:59.0140746Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-09T09:52:59.0141865Z       "requiredStages": [
2026-06-09T09:52:59.0142066Z         "impl",
2026-06-09T09:52:59.0142233Z         "unit"
2026-06-09T09:52:59.0142400Z       ],
2026-06-09T09:52:59.0142567Z       "stages": {
2026-06-09T09:52:59.0142733Z         "doc": {
2026-06-09T09:52:59.0142911Z           "complete": false,
2026-06-09T09:52:59.0143110Z           "evidence": []
2026-06-09T09:52:59.0143296Z         },
2026-06-09T09:52:59.0143456Z         "impl": {
2026-06-09T09:52:59.0143634Z           "complete": true,
2026-06-09T09:52:59.0143824Z           "evidence": [
2026-06-09T09:52:59.0144005Z             {
2026-06-09T09:52:59.0144211Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0144488Z               "line": 316
2026-06-09T09:52:59.0144668Z             },
2026-06-09T09:52:59.0144836Z             {
2026-06-09T09:52:59.0145030Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0145278Z               "line": 333
2026-06-09T09:52:59.0145461Z             },
2026-06-09T09:52:59.0145630Z             {
2026-06-09T09:52:59.0145835Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0146096Z               "line": 761
2026-06-09T09:52:59.0146276Z             },
2026-06-09T09:52:59.0146434Z             {
2026-06-09T09:52:59.0146638Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0146886Z               "line": 772
2026-06-09T09:52:59.0147064Z             },
2026-06-09T09:52:59.0147230Z             {
2026-06-09T09:52:59.0147421Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0147665Z               "line": 334
2026-06-09T09:52:59.0147845Z             },
2026-06-09T09:52:59.0148009Z             {
2026-06-09T09:52:59.0148189Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0148408Z               "line": 2143
2026-06-09T09:52:59.0148583Z             },
2026-06-09T09:52:59.0148744Z             {
2026-06-09T09:52:59.0148919Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0149238Z               "line": 2159
2026-06-09T09:52:59.0149425Z             },
2026-06-09T09:52:59.0149593Z             {
2026-06-09T09:52:59.0149773Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0149993Z               "line": 2216
2026-06-09T09:52:59.0150174Z             }
2026-06-09T09:52:59.0150331Z           ]
2026-06-09T09:52:59.0150483Z         },
2026-06-09T09:52:59.0150642Z         "int": {
2026-06-09T09:52:59.0150827Z           "complete": false,
2026-06-09T09:52:59.0151022Z           "evidence": []
2026-06-09T09:52:59.0151202Z         },
2026-06-09T09:52:59.0151357Z         "unit": {
2026-06-09T09:52:59.0151534Z           "complete": true,
2026-06-09T09:52:59.0151859Z           "evidence": [
2026-06-09T09:52:59.0152043Z             {
2026-06-09T09:52:59.0152240Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0152488Z               "line": 1071
2026-06-09T09:52:59.0152673Z             }
2026-06-09T09:52:59.0152832Z           ]
2026-06-09T09:52:59.0153089Z         }
2026-06-09T09:52:59.0153254Z       }
2026-06-09T09:52:59.0153409Z     },
2026-06-09T09:52:59.0153564Z     {
2026-06-09T09:52:59.0153724Z       "id": "REQ-DAEMON-1",
2026-06-09T09:52:59.0153998Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-09T09:52:59.0154303Z       "requiredStages": [
2026-06-09T09:52:59.0154504Z         "impl",
2026-06-09T09:52:59.0154675Z         "unit",
2026-06-09T09:52:59.0154889Z         "int"
2026-06-09T09:52:59.0155062Z       ],
2026-06-09T09:52:59.0155218Z       "stages": {
2026-06-09T09:52:59.0155387Z         "doc": {
2026-06-09T09:52:59.0155562Z           "complete": false,
2026-06-09T09:52:59.0155772Z           "evidence": []
2026-06-09T09:52:59.0155958Z         },
2026-06-09T09:52:59.0156114Z         "impl": {
2026-06-09T09:52:59.0156290Z           "complete": true,
2026-06-09T09:52:59.0156484Z           "evidence": [
2026-06-09T09:52:59.0156665Z             {
2026-06-09T09:52:59.0156860Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0157113Z               "line": 12
2026-06-09T09:52:59.0157291Z             },
2026-06-09T09:52:59.0157456Z             {
2026-06-09T09:52:59.0157657Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0157900Z               "line": 16
2026-06-09T09:52:59.0158076Z             },
2026-06-09T09:52:59.0158230Z             {
2026-06-09T09:52:59.0158425Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-09T09:52:59.0158663Z               "line": 15
2026-06-09T09:52:59.0158831Z             },
2026-06-09T09:52:59.0159167Z             {
2026-06-09T09:52:59.0159356Z               "path": "crates/spt/src/api/live.rs",
2026-06-09T09:52:59.0159604Z               "line": 13
2026-06-09T09:52:59.0159780Z             }
2026-06-09T09:52:59.0159938Z           ]
2026-06-09T09:52:59.0160099Z         },
2026-06-09T09:52:59.0160257Z         "int": {
2026-06-09T09:52:59.0160433Z           "complete": true,
2026-06-09T09:52:59.0160624Z           "evidence": [
2026-06-09T09:52:59.0160806Z             {
2026-06-09T09:52:59.0161015Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T09:52:59.0161262Z               "line": 32
2026-06-09T09:52:59.0161441Z             }
2026-06-09T09:52:59.0161601Z           ]
2026-06-09T09:52:59.0161758Z         },
2026-06-09T09:52:59.0161913Z         "unit": {
2026-06-09T09:52:59.0162103Z           "complete": true,
2026-06-09T09:52:59.0215864Z           "evidence": [
2026-06-09T09:52:59.0216396Z             {
2026-06-09T09:52:59.0216659Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0216949Z               "line": 285
2026-06-09T09:52:59.0217273Z             },
2026-06-09T09:52:59.0217450Z             {
2026-06-09T09:52:59.0217677Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0217935Z               "line": 293
2026-06-09T09:52:59.0218117Z             },
2026-06-09T09:52:59.0218274Z             {
2026-06-09T09:52:59.0218475Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0218733Z               "line": 309
2026-06-09T09:52:59.0218923Z             },
2026-06-09T09:52:59.0219218Z             {
2026-06-09T09:52:59.0219419Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0219665Z               "line": 317
2026-06-09T09:52:59.0219849Z             },
2026-06-09T09:52:59.0220011Z             {
2026-06-09T09:52:59.0220211Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0220460Z               "line": 565
2026-06-09T09:52:59.0220632Z             },
2026-06-09T09:52:59.0220908Z             {
2026-06-09T09:52:59.0221122Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0221823Z               "line": 635
2026-06-09T09:52:59.0222019Z             },
2026-06-09T09:52:59.0222201Z             {
2026-06-09T09:52:59.0222413Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-09T09:52:59.0222660Z               "line": 104
2026-06-09T09:52:59.0222989Z             },
2026-06-09T09:52:59.0223149Z             {
2026-06-09T09:52:59.0223351Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-09T09:52:59.0223594Z               "line": 129
2026-06-09T09:52:59.0223770Z             }
2026-06-09T09:52:59.0223928Z           ]
2026-06-09T09:52:59.0224085Z         }
2026-06-09T09:52:59.0224238Z       }
2026-06-09T09:52:59.0224390Z     },
2026-06-09T09:52:59.0224548Z     {
2026-06-09T09:52:59.0224719Z       "id": "REQ-DAEMON-2",
2026-06-09T09:52:59.0224980Z       "title": "Broker/brain split for seamless self-update",
2026-06-09T09:52:59.0225250Z       "requiredStages": [
2026-06-09T09:52:59.0225498Z         "impl",
2026-06-09T09:52:59.0225674Z         "unit",
2026-06-09T09:52:59.0225846Z         "int"
2026-06-09T09:52:59.0226017Z       ],
2026-06-09T09:52:59.0226194Z       "stages": {
2026-06-09T09:52:59.0226376Z         "doc": {
2026-06-09T09:52:59.0226566Z           "complete": false,
2026-06-09T09:52:59.0226799Z           "evidence": []
2026-06-09T09:52:59.0227010Z         },
2026-06-09T09:52:59.0227166Z         "impl": {
2026-06-09T09:52:59.0227339Z           "complete": true,
2026-06-09T09:52:59.0227538Z           "evidence": [
2026-06-09T09:52:59.0227716Z             {
2026-06-09T09:52:59.0227913Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0228157Z               "line": 23
2026-06-09T09:52:59.0228349Z             },
2026-06-09T09:52:59.0228515Z             {
2026-06-09T09:52:59.0228701Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0228939Z               "line": 531
2026-06-09T09:52:59.0229240Z             },
2026-06-09T09:52:59.0229411Z             {
2026-06-09T09:52:59.0229603Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0229840Z               "line": 684
2026-06-09T09:52:59.0230050Z             },
2026-06-09T09:52:59.0230211Z             {
2026-06-09T09:52:59.0230414Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0230677Z               "line": 32
2026-06-09T09:52:59.0230867Z             },
2026-06-09T09:52:59.0231034Z             {
2026-06-09T09:52:59.0231225Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0231477Z               "line": 195
2026-06-09T09:52:59.0231649Z             },
2026-06-09T09:52:59.0231816Z             {
2026-06-09T09:52:59.0232002Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0232236Z               "line": 565
2026-06-09T09:52:59.0232417Z             },
2026-06-09T09:52:59.0232588Z             {
2026-06-09T09:52:59.0232775Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0233016Z               "line": 807
2026-06-09T09:52:59.0233197Z             },
2026-06-09T09:52:59.0233357Z             {
2026-06-09T09:52:59.0233549Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T09:52:59.0233787Z               "line": 11
2026-06-09T09:52:59.0233962Z             },
2026-06-09T09:52:59.0234049Z             {
2026-06-09T09:52:59.0234168Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0234259Z               "line": 146
2026-06-09T09:52:59.0234349Z             },
2026-06-09T09:52:59.0234460Z             {
2026-06-09T09:52:59.0234574Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0234669Z               "line": 235
2026-06-09T09:52:59.0234756Z             },
2026-06-09T09:52:59.0234845Z             {
2026-06-09T09:52:59.0234964Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0235056Z               "line": 13
2026-06-09T09:52:59.0235150Z             },
2026-06-09T09:52:59.0235231Z             {
2026-06-09T09:52:59.0235555Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0235664Z               "line": 27
2026-06-09T09:52:59.0235750Z             },
2026-06-09T09:52:59.0235834Z             {
2026-06-09T09:52:59.0235957Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0236177Z               "line": 109
2026-06-09T09:52:59.0236257Z             },
2026-06-09T09:52:59.0236340Z             {
2026-06-09T09:52:59.0236463Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0236548Z               "line": 447
2026-06-09T09:52:59.0236635Z             },
2026-06-09T09:52:59.0236716Z             {
2026-06-09T09:52:59.0236834Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0236921Z               "line": 614
2026-06-09T09:52:59.0237012Z             },
2026-06-09T09:52:59.0237092Z             {
2026-06-09T09:52:59.0237207Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0237303Z               "line": 715
2026-06-09T09:52:59.0237383Z             },
2026-06-09T09:52:59.0237464Z             {
2026-06-09T09:52:59.0237575Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0237670Z               "line": 764
2026-06-09T09:52:59.0237750Z             },
2026-06-09T09:52:59.0237832Z             {
2026-06-09T09:52:59.0237947Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0238031Z               "line": 812
2026-06-09T09:52:59.0238117Z             },
2026-06-09T09:52:59.0238200Z             {
2026-06-09T09:52:59.0238323Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T09:52:59.0238412Z               "line": 10
2026-06-09T09:52:59.0238488Z             }
2026-06-09T09:52:59.0238579Z           ]
2026-06-09T09:52:59.0238657Z         },
2026-06-09T09:52:59.0238750Z         "int": {
2026-06-09T09:52:59.0238860Z           "complete": true,
2026-06-09T09:52:59.0239032Z           "evidence": [
2026-06-09T09:52:59.0239136Z             {
2026-06-09T09:52:59.0239257Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-09T09:52:59.0239342Z               "line": 17
2026-06-09T09:52:59.0239418Z             },
2026-06-09T09:52:59.0239500Z             {
2026-06-09T09:52:59.0239624Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T09:52:59.0239718Z               "line": 33
2026-06-09T09:52:59.0239795Z             },
2026-06-09T09:52:59.0239872Z             {
2026-06-09T09:52:59.0239991Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-09T09:52:59.0240076Z               "line": 19
2026-06-09T09:52:59.0240154Z             },
2026-06-09T09:52:59.0240234Z             {
2026-06-09T09:52:59.0240362Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T09:52:59.0240449Z               "line": 71
2026-06-09T09:52:59.0240530Z             },
2026-06-09T09:52:59.0240605Z             {
2026-06-09T09:52:59.0240719Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T09:52:59.0240810Z               "line": 91
2026-06-09T09:52:59.0240890Z             },
2026-06-09T09:52:59.0240970Z             {
2026-06-09T09:52:59.0241088Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T09:52:59.0241170Z               "line": 167
2026-06-09T09:52:59.0241260Z             },
2026-06-09T09:52:59.0241336Z             {
2026-06-09T09:52:59.0241461Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T09:52:59.0241547Z               "line": 209
2026-06-09T09:52:59.0241627Z             },
2026-06-09T09:52:59.0241708Z             {
2026-06-09T09:52:59.0241824Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-09T09:52:59.0241913Z               "line": 128
2026-06-09T09:52:59.0241980Z             }
2026-06-09T09:52:59.0242062Z           ]
2026-06-09T09:52:59.0242147Z         },
2026-06-09T09:52:59.0242224Z         "unit": {
2026-06-09T09:52:59.0242318Z           "complete": true,
2026-06-09T09:52:59.0242533Z           "evidence": [
2026-06-09T09:52:59.0242624Z             {
2026-06-09T09:52:59.0242730Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T09:52:59.0242819Z               "line": 62
2026-06-09T09:52:59.0242906Z             },
2026-06-09T09:52:59.0242987Z             {
2026-06-09T09:52:59.0243102Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T09:52:59.0243292Z               "line": 76
2026-06-09T09:52:59.0243379Z             },
2026-06-09T09:52:59.0243454Z             {
2026-06-09T09:52:59.0243567Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-09T09:52:59.0243657Z               "line": 88
2026-06-09T09:52:59.0243738Z             },
2026-06-09T09:52:59.0243818Z             {
2026-06-09T09:52:59.0243927Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T09:52:59.0244018Z               "line": 294
2026-06-09T09:52:59.0244094Z             },
2026-06-09T09:52:59.0244180Z             {
2026-06-09T09:52:59.0244284Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0244371Z               "line": 583
2026-06-09T09:52:59.0244457Z             },
2026-06-09T09:52:59.0244532Z             {
2026-06-09T09:52:59.0244643Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0244724Z               "line": 591
2026-06-09T09:52:59.0244814Z             },
2026-06-09T09:52:59.0244895Z             {
2026-06-09T09:52:59.0245005Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0245090Z               "line": 608
2026-06-09T09:52:59.0245171Z             },
2026-06-09T09:52:59.0245253Z             {
2026-06-09T09:52:59.0245358Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0245448Z               "line": 662
2026-06-09T09:52:59.0245534Z             },
2026-06-09T09:52:59.0245611Z             {
2026-06-09T09:52:59.0245725Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0245810Z               "line": 883
2026-06-09T09:52:59.0245903Z             },
2026-06-09T09:52:59.0245978Z             {
2026-06-09T09:52:59.0246095Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0246185Z               "line": 895
2026-06-09T09:52:59.0246267Z             },
2026-06-09T09:52:59.0246352Z             {
2026-06-09T09:52:59.0246465Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T09:52:59.0246556Z               "line": 110
2026-06-09T09:52:59.0246637Z             }
2026-06-09T09:52:59.0246718Z           ]
2026-06-09T09:52:59.0246803Z         }
2026-06-09T09:52:59.0246885Z       }
2026-06-09T09:52:59.0246971Z     },
2026-06-09T09:52:59.0247052Z     {
2026-06-09T09:52:59.0247142Z       "id": "REQ-DAEMON-3",
2026-06-09T09:52:59.0247300Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-09T09:52:59.0247399Z       "requiredStages": [
2026-06-09T09:52:59.0247486Z         "impl",
2026-06-09T09:52:59.0247563Z         "unit",
2026-06-09T09:52:59.0247647Z         "int"
2026-06-09T09:52:59.0247733Z       ],
2026-06-09T09:52:59.0247820Z       "stages": {
2026-06-09T09:52:59.0247901Z         "doc": {
2026-06-09T09:52:59.0247996Z           "complete": false,
2026-06-09T09:52:59.0248082Z           "evidence": []
2026-06-09T09:52:59.0248164Z         },
2026-06-09T09:52:59.0248249Z         "impl": {
2026-06-09T09:52:59.0248339Z           "complete": true,
2026-06-09T09:52:59.0248425Z           "evidence": [
2026-06-09T09:52:59.0248507Z             {
2026-06-09T09:52:59.0248624Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0248711Z               "line": 14
2026-06-09T09:52:59.0248793Z             },
2026-06-09T09:52:59.0248883Z             {
2026-06-09T09:52:59.0249096Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-09T09:52:59.0249192Z               "line": 11
2026-06-09T09:52:59.0249282Z             },
2026-06-09T09:52:59.0249363Z             {
2026-06-09T09:52:59.0249479Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:59.0249678Z               "line": 247
2026-06-09T09:52:59.0249765Z             },
2026-06-09T09:52:59.0249840Z             {
2026-06-09T09:52:59.0249949Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0250041Z               "line": 1271
2026-06-09T09:52:59.0250122Z             },
2026-06-09T09:52:59.0250207Z             {
2026-06-09T09:52:59.0250428Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0250522Z               "line": 3087
2026-06-09T09:52:59.0250603Z             },
2026-06-09T09:52:59.0250690Z             {
2026-06-09T09:52:59.0250794Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0250879Z               "line": 3108
2026-06-09T09:52:59.0250961Z             }
2026-06-09T09:52:59.0251048Z           ]
2026-06-09T09:52:59.0251123Z         },
2026-06-09T09:52:59.0251203Z         "int": {
2026-06-09T09:52:59.0251302Z           "complete": true,
2026-06-09T09:52:59.0251394Z           "evidence": [
2026-06-09T09:52:59.0251468Z             {
2026-06-09T09:52:59.0251595Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:59.0251677Z               "line": 46
2026-06-09T09:52:59.0251764Z             },
2026-06-09T09:52:59.0251844Z             {
2026-06-09T09:52:59.0252026Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:59.0252225Z               "line": 435
2026-06-09T09:52:59.0252388Z             }
2026-06-09T09:52:59.0252487Z           ]
2026-06-09T09:52:59.0252646Z         },
2026-06-09T09:52:59.0252802Z         "unit": {
2026-06-09T09:52:59.0252961Z           "complete": true,
2026-06-09T09:52:59.0253127Z           "evidence": [
2026-06-09T09:52:59.0253237Z             {
2026-06-09T09:52:59.0253427Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0253542Z               "line": 746
2026-06-09T09:52:59.0253708Z             },
2026-06-09T09:52:59.0253862Z             {
2026-06-09T09:52:59.0254005Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0254150Z               "line": 7561
2026-06-09T09:52:59.0254266Z             }
2026-06-09T09:52:59.0254435Z           ]
2026-06-09T09:52:59.0254554Z         }
2026-06-09T09:52:59.0254721Z       }
2026-06-09T09:52:59.0254859Z     },
2026-06-09T09:52:59.0254969Z     {
2026-06-09T09:52:59.0255155Z       "id": "REQ-DAEMON-4",
2026-06-09T09:52:59.0255327Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-09T09:52:59.0255488Z       "requiredStages": [
2026-06-09T09:52:59.0255641Z         "impl",
2026-06-09T09:52:59.0255755Z         "unit",
2026-06-09T09:52:59.0255923Z         "int"
2026-06-09T09:52:59.0256051Z       ],
2026-06-09T09:52:59.0256219Z       "stages": {
2026-06-09T09:52:59.0256327Z         "doc": {
2026-06-09T09:52:59.0256482Z           "complete": false,
2026-06-09T09:52:59.0256651Z           "evidence": []
2026-06-09T09:52:59.0256784Z         },
2026-06-09T09:52:59.0256931Z         "impl": {
2026-06-09T09:52:59.0257044Z           "complete": true,
2026-06-09T09:52:59.0257188Z           "evidence": [
2026-06-09T09:52:59.0257288Z             {
2026-06-09T09:52:59.0257536Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0257688Z               "line": 371
2026-06-09T09:52:59.0257794Z             },
2026-06-09T09:52:59.0257932Z             {
2026-06-09T09:52:59.0258061Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0258279Z               "line": 436
2026-06-09T09:52:59.0258390Z             },
2026-06-09T09:52:59.0258532Z             {
2026-06-09T09:52:59.0258705Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0258809Z               "line": 458
2026-06-09T09:52:59.0259119Z             }
2026-06-09T09:52:59.0259233Z           ]
2026-06-09T09:52:59.0259372Z         },
2026-06-09T09:52:59.0259513Z         "int": {
2026-06-09T09:52:59.0259618Z           "complete": true,
2026-06-09T09:52:59.0259833Z           "evidence": [
2026-06-09T09:52:59.0259942Z             {
2026-06-09T09:52:59.0260139Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T09:52:59.0260373Z               "line": 34
2026-06-09T09:52:59.0260514Z             }
2026-06-09T09:52:59.0260715Z           ]
2026-06-09T09:52:59.0260824Z         },
2026-06-09T09:52:59.0260964Z         "unit": {
2026-06-09T09:52:59.0261096Z           "complete": true,
2026-06-09T09:52:59.0261331Z           "evidence": [
2026-06-09T09:52:59.0261487Z             {
2026-06-09T09:52:59.0261688Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0261853Z               "line": 428
2026-06-09T09:52:59.0261959Z             },
2026-06-09T09:52:59.0262090Z             {
2026-06-09T09:52:59.0262276Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0262433Z               "line": 784
2026-06-09T09:52:59.0262586Z             },
2026-06-09T09:52:59.0262695Z             {
2026-06-09T09:52:59.0262853Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0263001Z               "line": 854
2026-06-09T09:52:59.0263158Z             },
2026-06-09T09:52:59.0263287Z             {
2026-06-09T09:52:59.0263463Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0263592Z               "line": 884
2026-06-09T09:52:59.0263735Z             },
2026-06-09T09:52:59.0263902Z             {
2026-06-09T09:52:59.0264049Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0264198Z               "line": 917
2026-06-09T09:52:59.0264306Z             }
2026-06-09T09:52:59.0264470Z           ]
2026-06-09T09:52:59.0264635Z         }
2026-06-09T09:52:59.0264744Z       }
2026-06-09T09:52:59.0264886Z     },
2026-06-09T09:52:59.0265032Z     {
2026-06-09T09:52:59.0265215Z       "id": "REQ-DAEMON-5",
2026-06-09T09:52:59.0266769Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-09T09:52:59.0266912Z       "requiredStages": [
2026-06-09T09:52:59.0267056Z         "impl",
2026-06-09T09:52:59.0267164Z         "unit"
2026-06-09T09:52:59.0267344Z       ],
2026-06-09T09:52:59.0267514Z       "stages": {
2026-06-09T09:52:59.0267623Z         "doc": {
2026-06-09T09:52:59.0267772Z           "complete": false,
2026-06-09T09:52:59.0267890Z           "evidence": []
2026-06-09T09:52:59.0268049Z         },
2026-06-09T09:52:59.0268191Z         "impl": {
2026-06-09T09:52:59.0268349Z           "complete": true,
2026-06-09T09:52:59.0268496Z           "evidence": [
2026-06-09T09:52:59.0268606Z             {
2026-06-09T09:52:59.0268830Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0269026Z               "line": 323
2026-06-09T09:52:59.0269182Z             },
2026-06-09T09:52:59.0269336Z             {
2026-06-09T09:52:59.0269488Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0269679Z               "line": 724
2026-06-09T09:52:59.0269798Z             },
2026-06-09T09:52:59.0269937Z             {
2026-06-09T09:52:59.0270078Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0270226Z               "line": 737
2026-06-09T09:52:59.0270407Z             },
2026-06-09T09:52:59.0270531Z             {
2026-06-09T09:52:59.0270704Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0270817Z               "line": 755
2026-06-09T09:52:59.0270965Z             },
2026-06-09T09:52:59.0271127Z             {
2026-06-09T09:52:59.0271285Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0271427Z               "line": 796
2026-06-09T09:52:59.0271534Z             }
2026-06-09T09:52:59.0271686Z           ]
2026-06-09T09:52:59.0271781Z         },
2026-06-09T09:52:59.0271970Z         "int": {
2026-06-09T09:52:59.0272234Z           "complete": false,
2026-06-09T09:52:59.0272366Z           "evidence": []
2026-06-09T09:52:59.0272504Z         },
2026-06-09T09:52:59.0272603Z         "unit": {
2026-06-09T09:52:59.0272807Z           "complete": true,
2026-06-09T09:52:59.0272918Z           "evidence": [
2026-06-09T09:52:59.0273175Z             {
2026-06-09T09:52:59.0273346Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0273457Z               "line": 916
2026-06-09T09:52:59.0273641Z             },
2026-06-09T09:52:59.0273766Z             {
2026-06-09T09:52:59.0273942Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0274052Z               "line": 940
2026-06-09T09:52:59.0274180Z             },
2026-06-09T09:52:59.0274381Z             {
2026-06-09T09:52:59.0274537Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0274687Z               "line": 966
2026-06-09T09:52:59.0274796Z             }
2026-06-09T09:52:59.0274924Z           ]
2026-06-09T09:52:59.0275129Z         }
2026-06-09T09:52:59.0275304Z       }
2026-06-09T09:52:59.0275447Z     },
2026-06-09T09:52:59.0275555Z     {
2026-06-09T09:52:59.0275689Z       "id": "REQ-DAEMON-6",
2026-06-09T09:52:59.0277861Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-09T09:52:59.0278065Z       "requiredStages": [
2026-06-09T09:52:59.0278207Z         "impl",
2026-06-09T09:52:59.0278332Z         "unit"
2026-06-09T09:52:59.0278464Z       ],
2026-06-09T09:52:59.0278675Z       "stages": {
2026-06-09T09:52:59.0278788Z         "doc": {
2026-06-09T09:52:59.0279037Z           "complete": false,
2026-06-09T09:52:59.0279171Z           "evidence": []
2026-06-09T09:52:59.0279304Z         },
2026-06-09T09:52:59.0279485Z         "impl": {
2026-06-09T09:52:59.0279662Z           "complete": true,
2026-06-09T09:52:59.0279810Z           "evidence": [
2026-06-09T09:52:59.0279920Z             {
2026-06-09T09:52:59.0280086Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0280258Z               "line": 405
2026-06-09T09:52:59.0280526Z             },
2026-06-09T09:52:59.0280671Z             {
2026-06-09T09:52:59.0280815Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0280963Z               "line": 436
2026-06-09T09:52:59.0281106Z             },
2026-06-09T09:52:59.0281264Z             {
2026-06-09T09:52:59.0281421Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0281574Z               "line": 55
2026-06-09T09:52:59.0281711Z             },
2026-06-09T09:52:59.0281864Z             {
2026-06-09T09:52:59.0282060Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0282179Z               "line": 70
2026-06-09T09:52:59.0282326Z             },
2026-06-09T09:52:59.0282447Z             {
2026-06-09T09:52:59.0282631Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0282799Z               "line": 1308
2026-06-09T09:52:59.0282907Z             },
2026-06-09T09:52:59.0283050Z             {
2026-06-09T09:52:59.0283163Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0283339Z               "line": 1334
2026-06-09T09:52:59.0283492Z             }
2026-06-09T09:52:59.0283601Z           ]
2026-06-09T09:52:59.0283759Z         },
2026-06-09T09:52:59.0283867Z         "int": {
2026-06-09T09:52:59.0284036Z           "complete": false,
2026-06-09T09:52:59.0284163Z           "evidence": []
2026-06-09T09:52:59.0284435Z         },
2026-06-09T09:52:59.0284578Z         "unit": {
2026-06-09T09:52:59.0284698Z           "complete": true,
2026-06-09T09:52:59.0284874Z           "evidence": [
2026-06-09T09:52:59.0284999Z             {
2026-06-09T09:52:59.0285188Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0285407Z               "line": 288
2026-06-09T09:52:59.0285547Z             },
2026-06-09T09:52:59.0285713Z             {
2026-06-09T09:52:59.0285884Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0286030Z               "line": 299
2026-06-09T09:52:59.0286144Z             },
2026-06-09T09:52:59.0286515Z             {
2026-06-09T09:52:59.0286711Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0286855Z               "line": 325
2026-06-09T09:52:59.0286998Z             },
2026-06-09T09:52:59.0287107Z             {
2026-06-09T09:52:59.0287274Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0287383Z               "line": 346
2026-06-09T09:52:59.0287589Z             }
2026-06-09T09:52:59.0287731Z           ]
2026-06-09T09:52:59.0287842Z         }
2026-06-09T09:52:59.0287984Z       }
2026-06-09T09:52:59.0288075Z     },
2026-06-09T09:52:59.0288289Z     {
2026-06-09T09:52:59.0288412Z       "id": "REQ-DAEMON-7",
2026-06-09T09:52:59.0289997Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-09T09:52:59.0290160Z       "requiredStages": [
2026-06-09T09:52:59.0290260Z         "impl",
2026-06-09T09:52:59.0290470Z         "unit"
2026-06-09T09:52:59.0290613Z       ],
2026-06-09T09:52:59.0290734Z       "stages": {
2026-06-09T09:52:59.0290875Z         "doc": {
2026-06-09T09:52:59.0290995Z           "complete": false,
2026-06-09T09:52:59.0291199Z           "evidence": []
2026-06-09T09:52:59.0291308Z         },
2026-06-09T09:52:59.0291452Z         "impl": {
2026-06-09T09:52:59.0291613Z           "complete": true,
2026-06-09T09:52:59.0291724Z           "evidence": [
2026-06-09T09:52:59.0291908Z             {
2026-06-09T09:52:59.0292053Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0292200Z               "line": 455
2026-06-09T09:52:59.0292300Z             },
2026-06-09T09:52:59.0292438Z             {
2026-06-09T09:52:59.0292654Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0292762Z               "line": 601
2026-06-09T09:52:59.0292906Z             },
2026-06-09T09:52:59.0293025Z             {
2026-06-09T09:52:59.0293186Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0293392Z               "line": 89
2026-06-09T09:52:59.0293491Z             },
2026-06-09T09:52:59.0293634Z             {
2026-06-09T09:52:59.0293779Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0293913Z               "line": 1272
2026-06-09T09:52:59.0294066Z             }
2026-06-09T09:52:59.0294218Z           ]
2026-06-09T09:52:59.0294381Z         },
2026-06-09T09:52:59.0294490Z         "int": {
2026-06-09T09:52:59.0294629Z           "complete": false,
2026-06-09T09:52:59.0294780Z           "evidence": []
2026-06-09T09:52:59.0294934Z         },
2026-06-09T09:52:59.0295048Z         "unit": {
2026-06-09T09:52:59.0295211Z           "complete": true,
2026-06-09T09:52:59.0295344Z           "evidence": [
2026-06-09T09:52:59.0295492Z             {
2026-06-09T09:52:59.0295677Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0295807Z               "line": 314
2026-06-09T09:52:59.0295944Z             },
2026-06-09T09:52:59.0296073Z             {
2026-06-09T09:52:59.0296358Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0296544Z               "line": 5450
2026-06-09T09:52:59.0296651Z             }
2026-06-09T09:52:59.0296790Z           ]
2026-06-09T09:52:59.0296900Z         }
2026-06-09T09:52:59.0297070Z       }
2026-06-09T09:52:59.0297239Z     },
2026-06-09T09:52:59.0297347Z     {
2026-06-09T09:52:59.0297609Z       "id": "REQ-DAEMON-8",
2026-06-09T09:52:59.0298597Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-09T09:52:59.0298802Z       "requiredStages": [
2026-06-09T09:52:59.0299058Z         "impl",
2026-06-09T09:52:59.0299175Z         "unit"
2026-06-09T09:52:59.0299318Z       ],
2026-06-09T09:52:59.0299429Z       "stages": {
2026-06-09T09:52:59.0299623Z         "doc": {
2026-06-09T09:52:59.0299767Z           "complete": false,
2026-06-09T09:52:59.0299918Z           "evidence": []
2026-06-09T09:52:59.0300062Z         },
2026-06-09T09:52:59.0300176Z         "impl": {
2026-06-09T09:52:59.0300363Z           "complete": true,
2026-06-09T09:52:59.0300491Z           "evidence": [
2026-06-09T09:52:59.0301087Z             {
2026-06-09T09:52:59.0301245Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0301411Z               "line": 355
2026-06-09T09:52:59.0301584Z             },
2026-06-09T09:52:59.0301707Z             {
2026-06-09T09:52:59.0301882Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0301993Z               "line": 56
2026-06-09T09:52:59.0302149Z             }
2026-06-09T09:52:59.0302313Z           ]
2026-06-09T09:52:59.0302436Z         },
2026-06-09T09:52:59.0302579Z         "int": {
2026-06-09T09:52:59.0302694Z           "complete": false,
2026-06-09T09:52:59.0302860Z           "evidence": []
2026-06-09T09:52:59.0307393Z         },
2026-06-09T09:52:59.0307526Z         "unit": {
2026-06-09T09:52:59.0307626Z           "complete": true,
2026-06-09T09:52:59.0307723Z           "evidence": [
2026-06-09T09:52:59.0307809Z             {
2026-06-09T09:52:59.0307945Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0308037Z               "line": 288
2026-06-09T09:52:59.0308142Z             },
2026-06-09T09:52:59.0308231Z             {
2026-06-09T09:52:59.0308357Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-09T09:52:59.0308451Z               "line": 325
2026-06-09T09:52:59.0308532Z             }
2026-06-09T09:52:59.0308624Z           ]
2026-06-09T09:52:59.0308705Z         }
2026-06-09T09:52:59.0308794Z       }
2026-06-09T09:52:59.0308885Z     },
2026-06-09T09:52:59.0309043Z     {
2026-06-09T09:52:59.0309166Z       "id": "REQ-DAEMON-9",
2026-06-09T09:52:59.0315338Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-09T09:52:59.0315501Z       "requiredStages": [
2026-06-09T09:52:59.0315590Z         "impl",
2026-06-09T09:52:59.0315682Z         "unit"
2026-06-09T09:52:59.0315763Z       ],
2026-06-09T09:52:59.0315853Z       "stages": {
2026-06-09T09:52:59.0315934Z         "doc": {
2026-06-09T09:52:59.0316035Z           "complete": false,
2026-06-09T09:52:59.0316302Z           "evidence": []
2026-06-09T09:52:59.0316388Z         },
2026-06-09T09:52:59.0316474Z         "impl": {
2026-06-09T09:52:59.0316573Z           "complete": true,
2026-06-09T09:52:59.0316665Z           "evidence": [
2026-06-09T09:52:59.0316745Z             {
2026-06-09T09:52:59.0316878Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0317074Z               "line": 220
2026-06-09T09:52:59.0317160Z             },
2026-06-09T09:52:59.0317247Z             {
2026-06-09T09:52:59.0317366Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0317459Z               "line": 183
2026-06-09T09:52:59.0317544Z             },
2026-06-09T09:52:59.0317631Z             {
2026-06-09T09:52:59.0317743Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0317838Z               "line": 236
2026-06-09T09:52:59.0317920Z             },
2026-06-09T09:52:59.0318001Z             {
2026-06-09T09:52:59.0318119Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0318205Z               "line": 269
2026-06-09T09:52:59.0318288Z             },
2026-06-09T09:52:59.0318369Z             {
2026-06-09T09:52:59.0318486Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0318573Z               "line": 290
2026-06-09T09:52:59.0318658Z             },
2026-06-09T09:52:59.0318749Z             {
2026-06-09T09:52:59.0318854Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0319082Z               "line": 1363
2026-06-09T09:52:59.0319198Z             }
2026-06-09T09:52:59.0319288Z           ]
2026-06-09T09:52:59.0319379Z         },
2026-06-09T09:52:59.0319455Z         "int": {
2026-06-09T09:52:59.0319556Z           "complete": false,
2026-06-09T09:52:59.0319645Z           "evidence": []
2026-06-09T09:52:59.0319736Z         },
2026-06-09T09:52:59.0319819Z         "unit": {
2026-06-09T09:52:59.0319914Z           "complete": true,
2026-06-09T09:52:59.0320007Z           "evidence": [
2026-06-09T09:52:59.0320092Z             {
2026-06-09T09:52:59.0320217Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0320300Z               "line": 702
2026-06-09T09:52:59.0320386Z             },
2026-06-09T09:52:59.0320467Z             {
2026-06-09T09:52:59.0320578Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0320676Z               "line": 7426
2026-06-09T09:52:59.0320758Z             }
2026-06-09T09:52:59.0320845Z           ]
2026-06-09T09:52:59.0320921Z         }
2026-06-09T09:52:59.0321010Z       }
2026-06-09T09:52:59.0321092Z     },
2026-06-09T09:52:59.0321173Z     {
2026-06-09T09:52:59.0321273Z       "id": "REQ-DOCS-1",
2026-06-09T09:52:59.0321474Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-09T09:52:59.0321573Z       "requiredStages": [
2026-06-09T09:52:59.0321659Z         "doc",
2026-06-09T09:52:59.0321745Z         "impl"
2026-06-09T09:52:59.0321831Z       ],
2026-06-09T09:52:59.0321926Z       "stages": {
2026-06-09T09:52:59.0322021Z         "doc": {
2026-06-09T09:52:59.0322109Z           "complete": true,
2026-06-09T09:52:59.0322202Z           "evidence": [
2026-06-09T09:52:59.0322283Z             {
2026-06-09T09:52:59.0322394Z               "path": "docs-site/src/index.md",
2026-06-09T09:52:59.0322484Z               "line": 50
2026-06-09T09:52:59.0322575Z             }
2026-06-09T09:52:59.0322661Z           ]
2026-06-09T09:52:59.0322743Z         },
2026-06-09T09:52:59.0322832Z         "impl": {
2026-06-09T09:52:59.0322922Z           "complete": true,
2026-06-09T09:52:59.0323012Z           "evidence": [
2026-06-09T09:52:59.0323089Z             {
2026-06-09T09:52:59.0323222Z               "path": ".github/workflows/docs-publish.yml",
2026-06-09T09:52:59.0323317Z               "line": 12
2026-06-09T09:52:59.0323409Z             },
2026-06-09T09:52:59.0323494Z             {
2026-06-09T09:52:59.0323598Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.0323686Z               "line": 14
2026-06-09T09:52:59.0323885Z             }
2026-06-09T09:52:59.0323971Z           ]
2026-06-09T09:52:59.0324057Z         },
2026-06-09T09:52:59.0324133Z         "int": {
2026-06-09T09:52:59.0324233Z           "complete": false,
2026-06-09T09:52:59.0324320Z           "evidence": []
2026-06-09T09:52:59.0324405Z         },
2026-06-09T09:52:59.0324576Z         "unit": {
2026-06-09T09:52:59.0324673Z           "complete": false,
2026-06-09T09:52:59.0324767Z           "evidence": []
2026-06-09T09:52:59.0324848Z         }
2026-06-09T09:52:59.0324930Z       }
2026-06-09T09:52:59.0325011Z     },
2026-06-09T09:52:59.0325100Z     {
2026-06-09T09:52:59.0325190Z       "id": "REQ-DOCS-2",
2026-06-09T09:52:59.0325357Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-09T09:52:59.0325451Z       "requiredStages": [
2026-06-09T09:52:59.0325531Z         "doc",
2026-06-09T09:52:59.0325618Z         "int"
2026-06-09T09:52:59.0325699Z       ],
2026-06-09T09:52:59.0325789Z       "stages": {
2026-06-09T09:52:59.0325875Z         "doc": {
2026-06-09T09:52:59.0325971Z           "complete": true,
2026-06-09T09:52:59.0326094Z           "evidence": [
2026-06-09T09:52:59.0326174Z             {
2026-06-09T09:52:59.0326305Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-09T09:52:59.0326390Z               "line": 3
2026-06-09T09:52:59.0326484Z             },
2026-06-09T09:52:59.0326562Z             {
2026-06-09T09:52:59.0326695Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-09T09:52:59.0326780Z               "line": 3
2026-06-09T09:52:59.0326862Z             }
2026-06-09T09:52:59.0326948Z           ]
2026-06-09T09:52:59.0327029Z         },
2026-06-09T09:52:59.0327114Z         "impl": {
2026-06-09T09:52:59.0327206Z           "complete": false,
2026-06-09T09:52:59.0327300Z           "evidence": []
2026-06-09T09:52:59.0327382Z         },
2026-06-09T09:52:59.0327463Z         "int": {
2026-06-09T09:52:59.0327559Z           "complete": true,
2026-06-09T09:52:59.0327648Z           "evidence": [
2026-06-09T09:52:59.0327734Z             {
2026-06-09T09:52:59.0327855Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T09:52:59.0327949Z               "line": 14
2026-06-09T09:52:59.0328033Z             }
2026-06-09T09:52:59.0328114Z           ]
2026-06-09T09:52:59.0328201Z         },
2026-06-09T09:52:59.0328289Z         "unit": {
2026-06-09T09:52:59.0328384Z           "complete": false,
2026-06-09T09:52:59.0328475Z           "evidence": []
2026-06-09T09:52:59.0328556Z         }
2026-06-09T09:52:59.0328642Z       }
2026-06-09T09:52:59.0328727Z     },
2026-06-09T09:52:59.0328814Z     {
2026-06-09T09:52:59.0328904Z       "id": "REQ-DOCS-3",
2026-06-09T09:52:59.0329332Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-09T09:52:59.0329434Z       "requiredStages": [
2026-06-09T09:52:59.0329524Z         "doc"
2026-06-09T09:52:59.0329605Z       ],
2026-06-09T09:52:59.0329691Z       "stages": {
2026-06-09T09:52:59.0329777Z         "doc": {
2026-06-09T09:52:59.0329881Z           "complete": true,
2026-06-09T09:52:59.0329976Z           "evidence": [
2026-06-09T09:52:59.0330059Z             {
2026-06-09T09:52:59.0330173Z               "path": "docs-site/src/index.md",
2026-06-09T09:52:59.0330263Z               "line": 42
2026-06-09T09:52:59.0330344Z             }
2026-06-09T09:52:59.0330436Z           ]
2026-06-09T09:52:59.0330530Z         },
2026-06-09T09:52:59.0330624Z         "impl": {
2026-06-09T09:52:59.0330715Z           "complete": false,
2026-06-09T09:52:59.0330805Z           "evidence": []
2026-06-09T09:52:59.0330893Z         },
2026-06-09T09:52:59.0330974Z         "int": {
2026-06-09T09:52:59.0331075Z           "complete": false,
2026-06-09T09:52:59.0331162Z           "evidence": []
2026-06-09T09:52:59.0331251Z         },
2026-06-09T09:52:59.0331337Z         "unit": {
2026-06-09T09:52:59.0331433Z           "complete": false,
2026-06-09T09:52:59.0331518Z           "evidence": []
2026-06-09T09:52:59.0331604Z         }
2026-06-09T09:52:59.0331691Z       }
2026-06-09T09:52:59.0331885Z     },
2026-06-09T09:52:59.0331972Z     {
2026-06-09T09:52:59.0332063Z       "id": "REQ-DOCS-4",
2026-06-09T09:52:59.0332262Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-09T09:52:59.0332354Z       "requiredStages": [
2026-06-09T09:52:59.0332443Z         "doc",
2026-06-09T09:52:59.0332621Z         "impl",
2026-06-09T09:52:59.0332706Z         "unit"
2026-06-09T09:52:59.0332796Z       ],
2026-06-09T09:52:59.0332877Z       "stages": {
2026-06-09T09:52:59.0332969Z         "doc": {
2026-06-09T09:52:59.0333058Z           "complete": true,
2026-06-09T09:52:59.0333154Z           "evidence": [
2026-06-09T09:52:59.0333236Z             {
2026-06-09T09:52:59.0333350Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-09T09:52:59.0333439Z               "line": 35
2026-06-09T09:52:59.0333519Z             }
2026-06-09T09:52:59.0333606Z           ]
2026-06-09T09:52:59.0333688Z         },
2026-06-09T09:52:59.0333773Z         "impl": {
2026-06-09T09:52:59.0333872Z           "complete": true,
2026-06-09T09:52:59.0333964Z           "evidence": [
2026-06-09T09:52:59.0334050Z             {
2026-06-09T09:52:59.0334172Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0334270Z               "line": 522
2026-06-09T09:52:59.0334355Z             },
2026-06-09T09:52:59.0334445Z             {
2026-06-09T09:52:59.0334555Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.0334645Z               "line": 15
2026-06-09T09:52:59.0334731Z             }
2026-06-09T09:52:59.0334807Z           ]
2026-06-09T09:52:59.0334894Z         },
2026-06-09T09:52:59.0334979Z         "int": {
2026-06-09T09:52:59.0335074Z           "complete": false,
2026-06-09T09:52:59.0335166Z           "evidence": []
2026-06-09T09:52:59.0335247Z         },
2026-06-09T09:52:59.0335336Z         "unit": {
2026-06-09T09:52:59.0335422Z           "complete": true,
2026-06-09T09:52:59.0335514Z           "evidence": [
2026-06-09T09:52:59.0335594Z             {
2026-06-09T09:52:59.0335726Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0335817Z               "line": 978
2026-06-09T09:52:59.0335898Z             }
2026-06-09T09:52:59.0335987Z           ]
2026-06-09T09:52:59.0336067Z         }
2026-06-09T09:52:59.0336153Z       }
2026-06-09T09:52:59.0336235Z     },
2026-06-09T09:52:59.0336325Z     {
2026-06-09T09:52:59.0336425Z       "id": "REQ-DOCS-5",
2026-06-09T09:52:59.0336616Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-09T09:52:59.0336715Z       "requiredStages": [
2026-06-09T09:52:59.0336798Z         "impl",
2026-06-09T09:52:59.0336888Z         "int"
2026-06-09T09:52:59.0336968Z       ],
2026-06-09T09:52:59.0337059Z       "stages": {
2026-06-09T09:52:59.0337146Z         "doc": {
2026-06-09T09:52:59.0337241Z           "complete": false,
2026-06-09T09:52:59.0337341Z           "evidence": []
2026-06-09T09:52:59.0337417Z         },
2026-06-09T09:52:59.0337508Z         "impl": {
2026-06-09T09:52:59.0337603Z           "complete": true,
2026-06-09T09:52:59.0337698Z           "evidence": [
2026-06-09T09:52:59.0337790Z             {
2026-06-09T09:52:59.0337908Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0338003Z               "line": 523
2026-06-09T09:52:59.0338086Z             },
2026-06-09T09:52:59.0338175Z             {
2026-06-09T09:52:59.0338280Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.0338371Z               "line": 113
2026-06-09T09:52:59.0338462Z             }
2026-06-09T09:52:59.0338542Z           ]
2026-06-09T09:52:59.0338627Z         },
2026-06-09T09:52:59.0338708Z         "int": {
2026-06-09T09:52:59.0338807Z           "complete": true,
2026-06-09T09:52:59.0338901Z           "evidence": [
2026-06-09T09:52:59.0339083Z             {
2026-06-09T09:52:59.0339197Z               "path": ".github/workflows/ci.yml",
2026-06-09T09:52:59.0339282Z               "line": 86
2026-06-09T09:52:59.0339374Z             },
2026-06-09T09:52:59.0339587Z             {
2026-06-09T09:52:59.0339708Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0339798Z               "line": 1015
2026-06-09T09:52:59.0339883Z             }
2026-06-09T09:52:59.0339964Z           ]
2026-06-09T09:52:59.0340046Z         },
2026-06-09T09:52:59.0340131Z         "unit": {
2026-06-09T09:52:59.0340319Z           "complete": false,
2026-06-09T09:52:59.0340409Z           "evidence": []
2026-06-09T09:52:59.0340489Z         }
2026-06-09T09:52:59.0340580Z       }
2026-06-09T09:52:59.0340666Z     },
2026-06-09T09:52:59.0340742Z     {
2026-06-09T09:52:59.0340823Z       "id": "REQ-DOCS-6",
2026-06-09T09:52:59.0341146Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-09T09:52:59.0341241Z       "requiredStages": [
2026-06-09T09:52:59.0341327Z         "impl",
2026-06-09T09:52:59.0341416Z         "unit",
2026-06-09T09:52:59.0341506Z         "int"
2026-06-09T09:52:59.0341592Z       ],
2026-06-09T09:52:59.0341688Z       "stages": {
2026-06-09T09:52:59.0341768Z         "doc": {
2026-06-09T09:52:59.0341863Z           "complete": true,
2026-06-09T09:52:59.0341946Z           "evidence": [
2026-06-09T09:52:59.0342036Z             {
2026-06-09T09:52:59.0342164Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-09T09:52:59.0342256Z               "line": 4
2026-06-09T09:52:59.0342341Z             }
2026-06-09T09:52:59.0342422Z           ]
2026-06-09T09:52:59.0342503Z         },
2026-06-09T09:52:59.0342589Z         "impl": {
2026-06-09T09:52:59.0342684Z           "complete": true,
2026-06-09T09:52:59.0342779Z           "evidence": [
2026-06-09T09:52:59.0342861Z             {
2026-06-09T09:52:59.0342970Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0343061Z               "line": 3964
2026-06-09T09:52:59.0343146Z             }
2026-06-09T09:52:59.0343224Z           ]
2026-06-09T09:52:59.0343318Z         },
2026-06-09T09:52:59.0343403Z         "int": {
2026-06-09T09:52:59.0343496Z           "complete": true,
2026-06-09T09:52:59.0343596Z           "evidence": [
2026-06-09T09:52:59.0343680Z             {
2026-06-09T09:52:59.0343801Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T09:52:59.0343897Z               "line": 34
2026-06-09T09:52:59.0343980Z             }
2026-06-09T09:52:59.0344070Z           ]
2026-06-09T09:52:59.0344147Z         },
2026-06-09T09:52:59.0344238Z         "unit": {
2026-06-09T09:52:59.0344328Z           "complete": true,
2026-06-09T09:52:59.0344423Z           "evidence": [
2026-06-09T09:52:59.0344505Z             {
2026-06-09T09:52:59.0344615Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0344704Z               "line": 7588
2026-06-09T09:52:59.0344786Z             }
2026-06-09T09:52:59.0344876Z           ]
2026-06-09T09:52:59.0344957Z         }
2026-06-09T09:52:59.0345043Z       }
2026-06-09T09:52:59.0345120Z     },
2026-06-09T09:52:59.0345205Z     {
2026-06-09T09:52:59.0345314Z       "id": "REQ-EP-1",
2026-06-09T09:52:59.0345440Z       "title": "Day-one endpoint types; open type system",
2026-06-09T09:52:59.0345525Z       "requiredStages": [
2026-06-09T09:52:59.0345606Z         "impl",
2026-06-09T09:52:59.0345692Z         "unit"
2026-06-09T09:52:59.0345774Z       ],
2026-06-09T09:52:59.0345863Z       "stages": {
2026-06-09T09:52:59.0345954Z         "doc": {
2026-06-09T09:52:59.0346035Z           "complete": false,
2026-06-09T09:52:59.0346127Z           "evidence": []
2026-06-09T09:52:59.0346201Z         },
2026-06-09T09:52:59.0346291Z         "impl": {
2026-06-09T09:52:59.0346377Z           "complete": true,
2026-06-09T09:52:59.0346463Z           "evidence": [
2026-06-09T09:52:59.0346547Z             {
2026-06-09T09:52:59.0346665Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0346757Z               "line": 77
2026-06-09T09:52:59.0346834Z             },
2026-06-09T09:52:59.0346914Z             {
2026-06-09T09:52:59.0347023Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0347195Z               "line": 94
2026-06-09T09:52:59.0347280Z             }
2026-06-09T09:52:59.0347363Z           ]
2026-06-09T09:52:59.0347448Z         },
2026-06-09T09:52:59.0347528Z         "int": {
2026-06-09T09:52:59.0347619Z           "complete": false,
2026-06-09T09:52:59.0347782Z           "evidence": []
2026-06-09T09:52:59.0347867Z         },
2026-06-09T09:52:59.0347953Z         "unit": {
2026-06-09T09:52:59.0348044Z           "complete": true,
2026-06-09T09:52:59.0348135Z           "evidence": [
2026-06-09T09:52:59.0348216Z             {
2026-06-09T09:52:59.0348336Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0348425Z               "line": 161
2026-06-09T09:52:59.0348511Z             },
2026-06-09T09:52:59.0348598Z             {
2026-06-09T09:52:59.0348712Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0348806Z               "line": 178
2026-06-09T09:52:59.0348888Z             }
2026-06-09T09:52:59.0349069Z           ]
2026-06-09T09:52:59.0349168Z         }
2026-06-09T09:52:59.0349263Z       }
2026-06-09T09:52:59.0349344Z     },
2026-06-09T09:52:59.0349423Z     {
2026-06-09T09:52:59.0349518Z       "id": "REQ-EP-2",
2026-06-09T09:52:59.0349672Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-09T09:52:59.0349772Z       "requiredStages": [
2026-06-09T09:52:59.0349852Z         "impl",
2026-06-09T09:52:59.0349939Z         "unit"
2026-06-09T09:52:59.0350029Z       ],
2026-06-09T09:52:59.0350110Z       "stages": {
2026-06-09T09:52:59.0350191Z         "doc": {
2026-06-09T09:52:59.0350277Z           "complete": false,
2026-06-09T09:52:59.0350373Z           "evidence": []
2026-06-09T09:52:59.0350458Z         },
2026-06-09T09:52:59.0350549Z         "impl": {
2026-06-09T09:52:59.0350644Z           "complete": true,
2026-06-09T09:52:59.0350735Z           "evidence": [
2026-06-09T09:52:59.0350835Z             {
2026-06-09T09:52:59.0350959Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0351068Z               "line": 114
2026-06-09T09:52:59.0351164Z             },
2026-06-09T09:52:59.0351265Z             {
2026-06-09T09:52:59.0351398Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0351489Z               "line": 131
2026-06-09T09:52:59.0351603Z             },
2026-06-09T09:52:59.0351711Z             {
2026-06-09T09:52:59.0351859Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0351962Z               "line": 138
2026-06-09T09:52:59.0352042Z             }
2026-06-09T09:52:59.0352128Z           ]
2026-06-09T09:52:59.0352215Z         },
2026-06-09T09:52:59.0352310Z         "int": {
2026-06-09T09:52:59.0352404Z           "complete": false,
2026-06-09T09:52:59.0352506Z           "evidence": []
2026-06-09T09:52:59.0352596Z         },
2026-06-09T09:52:59.0352695Z         "unit": {
2026-06-09T09:52:59.0352806Z           "complete": true,
2026-06-09T09:52:59.0352896Z           "evidence": [
2026-06-09T09:52:59.0353000Z             {
2026-06-09T09:52:59.0353121Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0353230Z               "line": 190
2026-06-09T09:52:59.0353329Z             },
2026-06-09T09:52:59.0353416Z             {
2026-06-09T09:52:59.0353545Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0353640Z               "line": 208
2026-06-09T09:52:59.0353736Z             },
2026-06-09T09:52:59.0353827Z             {
2026-06-09T09:52:59.0353959Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-09T09:52:59.0354056Z               "line": 221
2026-06-09T09:52:59.0354142Z             }
2026-06-09T09:52:59.0354240Z           ]
2026-06-09T09:52:59.0354327Z         }
2026-06-09T09:52:59.0354423Z       }
2026-06-09T09:52:59.0354508Z     },
2026-06-09T09:52:59.0354602Z     {
2026-06-09T09:52:59.0354693Z       "id": "REQ-EP-3",
2026-06-09T09:52:59.0354888Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-09T09:52:59.0355103Z       "requiredStages": [
2026-06-09T09:52:59.0355194Z         "impl",
2026-06-09T09:52:59.0355288Z         "unit"
2026-06-09T09:52:59.0355375Z       ],
2026-06-09T09:52:59.0355480Z       "stages": {
2026-06-09T09:52:59.0355574Z         "doc": {
2026-06-09T09:52:59.0355671Z           "complete": false,
2026-06-09T09:52:59.0355870Z           "evidence": []
2026-06-09T09:52:59.0355956Z         },
2026-06-09T09:52:59.0356048Z         "impl": {
2026-06-09T09:52:59.0356142Z           "complete": true,
2026-06-09T09:52:59.0356242Z           "evidence": [
2026-06-09T09:52:59.0356334Z             {
2026-06-09T09:52:59.0356456Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0356547Z               "line": 31
2026-06-09T09:52:59.0356634Z             },
2026-06-09T09:52:59.0356734Z             {
2026-06-09T09:52:59.0356852Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0356951Z               "line": 49
2026-06-09T09:52:59.0357051Z             }
2026-06-09T09:52:59.0357135Z           ]
2026-06-09T09:52:59.0357225Z         },
2026-06-09T09:52:59.0357317Z         "int": {
2026-06-09T09:52:59.0357421Z           "complete": false,
2026-06-09T09:52:59.0357516Z           "evidence": []
2026-06-09T09:52:59.0357608Z         },
2026-06-09T09:52:59.0357703Z         "unit": {
2026-06-09T09:52:59.0357807Z           "complete": true,
2026-06-09T09:52:59.0357908Z           "evidence": [
2026-06-09T09:52:59.0357989Z             {
2026-06-09T09:52:59.0358117Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0358209Z               "line": 156
2026-06-09T09:52:59.0358308Z             },
2026-06-09T09:52:59.0358408Z             {
2026-06-09T09:52:59.0358523Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0358623Z               "line": 164
2026-06-09T09:52:59.0358709Z             },
2026-06-09T09:52:59.0358799Z             {
2026-06-09T09:52:59.0358920Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0359114Z               "line": 177
2026-06-09T09:52:59.0359201Z             },
2026-06-09T09:52:59.0359286Z             {
2026-06-09T09:52:59.0359420Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0359511Z               "line": 200
2026-06-09T09:52:59.0359601Z             },
2026-06-09T09:52:59.0359690Z             {
2026-06-09T09:52:59.0359828Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0359927Z               "line": 216
2026-06-09T09:52:59.0360012Z             },
2026-06-09T09:52:59.0360112Z             {
2026-06-09T09:52:59.0360227Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-09T09:52:59.0360332Z               "line": 233
2026-06-09T09:52:59.0360417Z             }
2026-06-09T09:52:59.0360509Z           ]
2026-06-09T09:52:59.0360599Z         }
2026-06-09T09:52:59.0360684Z       }
2026-06-09T09:52:59.0360780Z     },
2026-06-09T09:52:59.0360866Z     {
2026-06-09T09:52:59.0360966Z       "id": "REQ-EP-4",
2026-06-09T09:52:59.0361104Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-09T09:52:59.0361200Z       "requiredStages": [
2026-06-09T09:52:59.0361285Z         "impl",
2026-06-09T09:52:59.0361366Z         "unit"
2026-06-09T09:52:59.0361458Z       ],
2026-06-09T09:52:59.0361543Z       "stages": {
2026-06-09T09:52:59.0361643Z         "doc": {
2026-06-09T09:52:59.0361739Z           "complete": false,
2026-06-09T09:52:59.0361839Z           "evidence": []
2026-06-09T09:52:59.0361928Z         },
2026-06-09T09:52:59.0362020Z         "impl": {
2026-06-09T09:52:59.0362125Z           "complete": true,
2026-06-09T09:52:59.0362219Z           "evidence": [
2026-06-09T09:52:59.0362309Z             {
2026-06-09T09:52:59.0362428Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0362532Z               "line": 461
2026-06-09T09:52:59.0362621Z             },
2026-06-09T09:52:59.0362703Z             {
2026-06-09T09:52:59.0362828Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0363037Z               "line": 706
2026-06-09T09:52:59.0363132Z             },
2026-06-09T09:52:59.0363218Z             {
2026-06-09T09:52:59.0363347Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0363447Z               "line": 824
2026-06-09T09:52:59.0363623Z             },
2026-06-09T09:52:59.0363719Z             {
2026-06-09T09:52:59.0363833Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0363933Z               "line": 83
2026-06-09T09:52:59.0364015Z             },
2026-06-09T09:52:59.0364110Z             {
2026-06-09T09:52:59.0364223Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0364311Z               "line": 460
2026-06-09T09:52:59.0364405Z             },
2026-06-09T09:52:59.0364491Z             {
2026-06-09T09:52:59.0364611Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0364706Z               "line": 546
2026-06-09T09:52:59.0364795Z             },
2026-06-09T09:52:59.0364906Z             {
2026-06-09T09:52:59.0365077Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0365200Z               "line": 196
2026-06-09T09:52:59.0365286Z             },
2026-06-09T09:52:59.0365378Z             {
2026-06-09T09:52:59.0365505Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0365615Z               "line": 337
2026-06-09T09:52:59.0365711Z             },
2026-06-09T09:52:59.0365791Z             {
2026-06-09T09:52:59.0365916Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0366002Z               "line": 847
2026-06-09T09:52:59.0366092Z             }
2026-06-09T09:52:59.0366178Z           ]
2026-06-09T09:52:59.0366274Z         },
2026-06-09T09:52:59.0366373Z         "int": {
2026-06-09T09:52:59.0366468Z           "complete": false,
2026-06-09T09:52:59.0366565Z           "evidence": []
2026-06-09T09:52:59.0366650Z         },
2026-06-09T09:52:59.0366750Z         "unit": {
2026-06-09T09:52:59.0366856Z           "complete": true,
2026-06-09T09:52:59.0366956Z           "evidence": [
2026-06-09T09:52:59.0367050Z             {
2026-06-09T09:52:59.0367170Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-09T09:52:59.0367266Z               "line": 637
2026-06-09T09:52:59.0367350Z             },
2026-06-09T09:52:59.0367454Z             {
2026-06-09T09:52:59.0367579Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-09T09:52:59.0367681Z               "line": 76
2026-06-09T09:52:59.0367776Z             },
2026-06-09T09:52:59.0367863Z             {
2026-06-09T09:52:59.0368000Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-09T09:52:59.0368091Z               "line": 147
2026-06-09T09:52:59.0368187Z             }
2026-06-09T09:52:59.0368283Z           ]
2026-06-09T09:52:59.0368382Z         }
2026-06-09T09:52:59.0368473Z       }
2026-06-09T09:52:59.0368554Z     },
2026-06-09T09:52:59.0368649Z     {
2026-06-09T09:52:59.0368744Z       "id": "REQ-EP-5",
2026-06-09T09:52:59.0369975Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-09T09:52:59.0370086Z       "requiredStages": [
2026-06-09T09:52:59.0370184Z         "impl",
2026-06-09T09:52:59.0370274Z         "unit",
2026-06-09T09:52:59.0370360Z         "int"
2026-06-09T09:52:59.0370446Z       ],
2026-06-09T09:52:59.0370534Z       "stages": {
2026-06-09T09:52:59.0370624Z         "doc": {
2026-06-09T09:52:59.0370725Z           "complete": false,
2026-06-09T09:52:59.0370821Z           "evidence": []
2026-06-09T09:52:59.0370915Z         },
2026-06-09T09:52:59.0371001Z         "impl": {
2026-06-09T09:52:59.0371102Z           "complete": true,
2026-06-09T09:52:59.0371187Z           "evidence": [
2026-06-09T09:52:59.0371282Z             {
2026-06-09T09:52:59.0371421Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0371684Z               "line": 351
2026-06-09T09:52:59.0371774Z             },
2026-06-09T09:52:59.0371859Z             {
2026-06-09T09:52:59.0371974Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0372051Z               "line": 18
2026-06-09T09:52:59.0372236Z             },
2026-06-09T09:52:59.0372323Z             {
2026-06-09T09:52:59.0372436Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0372518Z               "line": 63
2026-06-09T09:52:59.0372595Z             },
2026-06-09T09:52:59.0372676Z             {
2026-06-09T09:52:59.0372794Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0372888Z               "line": 92
2026-06-09T09:52:59.0372979Z             },
2026-06-09T09:52:59.0373059Z             {
2026-06-09T09:52:59.0373176Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0373263Z               "line": 167
2026-06-09T09:52:59.0373359Z             },
2026-06-09T09:52:59.0373439Z             {
2026-06-09T09:52:59.0373558Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0373655Z               "line": 179
2026-06-09T09:52:59.0373740Z             },
2026-06-09T09:52:59.0373829Z             {
2026-06-09T09:52:59.0373950Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0374055Z               "line": 114
2026-06-09T09:52:59.0374149Z             },
2026-06-09T09:52:59.0374232Z             {
2026-06-09T09:52:59.0374364Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0374459Z               "line": 22
2026-06-09T09:52:59.0374551Z             },
2026-06-09T09:52:59.0374632Z             {
2026-06-09T09:52:59.0374760Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0374846Z               "line": 129
2026-06-09T09:52:59.0374928Z             },
2026-06-09T09:52:59.0375008Z             {
2026-06-09T09:52:59.0375127Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0375219Z               "line": 156
2026-06-09T09:52:59.0375304Z             },
2026-06-09T09:52:59.0375390Z             {
2026-06-09T09:52:59.0375510Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0375595Z               "line": 178
2026-06-09T09:52:59.0375684Z             },
2026-06-09T09:52:59.0375765Z             {
2026-06-09T09:52:59.0375880Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0375966Z               "line": 203
2026-06-09T09:52:59.0376051Z             },
2026-06-09T09:52:59.0376137Z             {
2026-06-09T09:52:59.0376252Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0376342Z               "line": 229
2026-06-09T09:52:59.0376423Z             },
2026-06-09T09:52:59.0376505Z             {
2026-06-09T09:52:59.0376615Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0376709Z               "line": 252
2026-06-09T09:52:59.0376801Z             },
2026-06-09T09:52:59.0376886Z             {
2026-06-09T09:52:59.0377009Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0377091Z               "line": 81
2026-06-09T09:52:59.0377182Z             },
2026-06-09T09:52:59.0377262Z             {
2026-06-09T09:52:59.0377367Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0377444Z               "line": 4269
2026-06-09T09:52:59.0377526Z             },
2026-06-09T09:52:59.0377639Z             {
2026-06-09T09:52:59.0377750Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0377850Z               "line": 4392
2026-06-09T09:52:59.0377934Z             },
2026-06-09T09:52:59.0378023Z             {
2026-06-09T09:52:59.0378129Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0378213Z               "line": 4553
2026-06-09T09:52:59.0378303Z             },
2026-06-09T09:52:59.0378385Z             {
2026-06-09T09:52:59.0378495Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0378685Z               "line": 4935
2026-06-09T09:52:59.0378781Z             }
2026-06-09T09:52:59.0378880Z           ]
2026-06-09T09:52:59.0379048Z         },
2026-06-09T09:52:59.0381747Z         "int": {
2026-06-09T09:52:59.0381886Z           "complete": true,
2026-06-09T09:52:59.0382148Z           "evidence": [
2026-06-09T09:52:59.0382287Z             {
2026-06-09T09:52:59.0382439Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-09T09:52:59.0382535Z               "line": 16
2026-06-09T09:52:59.0382616Z             },
2026-06-09T09:52:59.0382715Z             {
2026-06-09T09:52:59.0382845Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-09T09:52:59.0382945Z               "line": 15
2026-06-09T09:52:59.0383030Z             }
2026-06-09T09:52:59.0383125Z           ]
2026-06-09T09:52:59.0383222Z         },
2026-06-09T09:52:59.0383311Z         "unit": {
2026-06-09T09:52:59.0383420Z           "complete": true,
2026-06-09T09:52:59.0383525Z           "evidence": [
2026-06-09T09:52:59.0383624Z             {
2026-06-09T09:52:59.0383755Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0383862Z               "line": 246
2026-06-09T09:52:59.0383971Z             },
2026-06-09T09:52:59.0384066Z             {
2026-06-09T09:52:59.0384205Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0384296Z               "line": 306
2026-06-09T09:52:59.0384381Z             },
2026-06-09T09:52:59.0384462Z             {
2026-06-09T09:52:59.0384582Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-09T09:52:59.0384671Z               "line": 362
2026-06-09T09:52:59.0384758Z             },
2026-06-09T09:52:59.0384839Z             {
2026-06-09T09:52:59.0384963Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0385053Z               "line": 268
2026-06-09T09:52:59.0385145Z             },
2026-06-09T09:52:59.0385234Z             {
2026-06-09T09:52:59.0385426Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.0385511Z               "line": 291
2026-06-09T09:52:59.0385596Z             },
2026-06-09T09:52:59.0385677Z             {
2026-06-09T09:52:59.0385798Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0385892Z               "line": 491
2026-06-09T09:52:59.0385983Z             },
2026-06-09T09:52:59.0386065Z             {
2026-06-09T09:52:59.0386169Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0386263Z               "line": 5725
2026-06-09T09:52:59.0386349Z             },
2026-06-09T09:52:59.0386435Z             {
2026-06-09T09:52:59.0386540Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0386625Z               "line": 5849
2026-06-09T09:52:59.0386722Z             },
2026-06-09T09:52:59.0386812Z             {
2026-06-09T09:52:59.0386916Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0387002Z               "line": 6436
2026-06-09T09:52:59.0387099Z             },
2026-06-09T09:52:59.0387189Z             {
2026-06-09T09:52:59.0387293Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0387394Z               "line": 6501
2026-06-09T09:52:59.0387484Z             }
2026-06-09T09:52:59.0387574Z           ]
2026-06-09T09:52:59.0387661Z         }
2026-06-09T09:52:59.0387771Z       }
2026-06-09T09:52:59.0387866Z     },
2026-06-09T09:52:59.0387952Z     {
2026-06-09T09:52:59.0388062Z       "id": "REQ-FRONT-1",
2026-06-09T09:52:59.0388242Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-09T09:52:59.0388353Z       "requiredStages": [],
2026-06-09T09:52:59.0388442Z       "stages": {
2026-06-09T09:52:59.0388527Z         "doc": {
2026-06-09T09:52:59.0388627Z           "complete": false,
2026-06-09T09:52:59.0388718Z           "evidence": []
2026-06-09T09:52:59.0388802Z         },
2026-06-09T09:52:59.0388887Z         "impl": {
2026-06-09T09:52:59.0389065Z           "complete": false,
2026-06-09T09:52:59.0389259Z           "evidence": []
2026-06-09T09:52:59.0389346Z         },
2026-06-09T09:52:59.0389436Z         "int": {
2026-06-09T09:52:59.0389526Z           "complete": false,
2026-06-09T09:52:59.0389622Z           "evidence": []
2026-06-09T09:52:59.0389703Z         },
2026-06-09T09:52:59.0389793Z         "unit": {
2026-06-09T09:52:59.0389975Z           "complete": false,
2026-06-09T09:52:59.0390070Z           "evidence": []
2026-06-09T09:52:59.0390155Z         }
2026-06-09T09:52:59.0390237Z       }
2026-06-09T09:52:59.0390328Z     },
2026-06-09T09:52:59.0390413Z     {
2026-06-09T09:52:59.0390533Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-09T09:52:59.0390708Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-09T09:52:59.0390809Z       "requiredStages": [
2026-06-09T09:52:59.0390896Z         "impl",
2026-06-09T09:52:59.0390981Z         "unit"
2026-06-09T09:52:59.0391057Z       ],
2026-06-09T09:52:59.0391134Z       "stages": {
2026-06-09T09:52:59.0391225Z         "doc": {
2026-06-09T09:52:59.0391352Z           "complete": false,
2026-06-09T09:52:59.0391451Z           "evidence": []
2026-06-09T09:52:59.0391542Z         },
2026-06-09T09:52:59.0391632Z         "impl": {
2026-06-09T09:52:59.0391735Z           "complete": true,
2026-06-09T09:52:59.0391826Z           "evidence": [
2026-06-09T09:52:59.0391927Z             {
2026-06-09T09:52:59.0392054Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0392155Z               "line": 149
2026-06-09T09:52:59.0392250Z             },
2026-06-09T09:52:59.0392340Z             {
2026-06-09T09:52:59.0392465Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0392565Z               "line": 18
2026-06-09T09:52:59.0392660Z             },
2026-06-09T09:52:59.0392746Z             {
2026-06-09T09:52:59.0392880Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0392975Z               "line": 98
2026-06-09T09:52:59.0393047Z             }
2026-06-09T09:52:59.0393134Z           ]
2026-06-09T09:52:59.0393218Z         },
2026-06-09T09:52:59.0393304Z         "int": {
2026-06-09T09:52:59.0393395Z           "complete": false,
2026-06-09T09:52:59.0393487Z           "evidence": []
2026-06-09T09:52:59.0393575Z         },
2026-06-09T09:52:59.0393662Z         "unit": {
2026-06-09T09:52:59.0393753Z           "complete": true,
2026-06-09T09:52:59.0393848Z           "evidence": [
2026-06-09T09:52:59.0393937Z             {
2026-06-09T09:52:59.0394052Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0394147Z               "line": 565
2026-06-09T09:52:59.0394230Z             },
2026-06-09T09:52:59.0394325Z             {
2026-06-09T09:52:59.0394450Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0394541Z               "line": 159
2026-06-09T09:52:59.0394626Z             },
2026-06-09T09:52:59.0394712Z             {
2026-06-09T09:52:59.0394822Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0394912Z               "line": 231
2026-06-09T09:52:59.0394998Z             }
2026-06-09T09:52:59.0395084Z           ]
2026-06-09T09:52:59.0395170Z         }
2026-06-09T09:52:59.0395293Z       }
2026-06-09T09:52:59.0395371Z     },
2026-06-09T09:52:59.0395461Z     {
2026-06-09T09:52:59.0395575Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-09T09:52:59.0396020Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-09T09:52:59.0396119Z       "requiredStages": [
2026-06-09T09:52:59.0396204Z         "impl",
2026-06-09T09:52:59.0396296Z         "unit"
2026-06-09T09:52:59.0396386Z       ],
2026-06-09T09:52:59.0396476Z       "stages": {
2026-06-09T09:52:59.0396572Z         "doc": {
2026-06-09T09:52:59.0396664Z           "complete": true,
2026-06-09T09:52:59.0396767Z           "evidence": [
2026-06-09T09:52:59.0396852Z             {
2026-06-09T09:52:59.0396977Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0397199Z               "line": 219
2026-06-09T09:52:59.0397296Z             }
2026-06-09T09:52:59.0397386Z           ]
2026-06-09T09:52:59.0397477Z         },
2026-06-09T09:52:59.0397562Z         "impl": {
2026-06-09T09:52:59.0397659Z           "complete": true,
2026-06-09T09:52:59.0397749Z           "evidence": [
2026-06-09T09:52:59.0397906Z             {
2026-06-09T09:52:59.0398044Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.0398139Z               "line": 302
2026-06-09T09:52:59.0398216Z             },
2026-06-09T09:52:59.0398307Z             {
2026-06-09T09:52:59.0398426Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0398517Z               "line": 257
2026-06-09T09:52:59.0398608Z             },
2026-06-09T09:52:59.0398688Z             {
2026-06-09T09:52:59.0398807Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0398889Z               "line": 405
2026-06-09T09:52:59.0399211Z             },
2026-06-09T09:52:59.0399296Z             {
2026-06-09T09:52:59.0399423Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0399505Z               "line": 77
2026-06-09T09:52:59.0399591Z             }
2026-06-09T09:52:59.0399672Z           ]
2026-06-09T09:52:59.0399752Z         },
2026-06-09T09:52:59.0399848Z         "int": {
2026-06-09T09:52:59.0399929Z           "complete": false,
2026-06-09T09:52:59.0400024Z           "evidence": []
2026-06-09T09:52:59.0400115Z         },
2026-06-09T09:52:59.0400206Z         "unit": {
2026-06-09T09:52:59.0400325Z           "complete": true,
2026-06-09T09:52:59.0400420Z           "evidence": [
2026-06-09T09:52:59.0400511Z             {
2026-06-09T09:52:59.0400635Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0400730Z               "line": 478
2026-06-09T09:52:59.0400821Z             },
2026-06-09T09:52:59.0400907Z             {
2026-06-09T09:52:59.0401030Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0401141Z               "line": 516
2026-06-09T09:52:59.0401235Z             },
2026-06-09T09:52:59.0401326Z             {
2026-06-09T09:52:59.0401456Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0401560Z               "line": 166
2026-06-09T09:52:59.0401645Z             }
2026-06-09T09:52:59.0401757Z           ]
2026-06-09T09:52:59.0401842Z         }
2026-06-09T09:52:59.0401940Z       }
2026-06-09T09:52:59.0402021Z     },
2026-06-09T09:52:59.0402102Z     {
2026-06-09T09:52:59.0402229Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-09T09:52:59.0402764Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-09T09:52:59.0402859Z       "requiredStages": [
2026-06-09T09:52:59.0402943Z         "impl",
2026-06-09T09:52:59.0403030Z         "unit"
2026-06-09T09:52:59.0403116Z       ],
2026-06-09T09:52:59.0403206Z       "stages": {
2026-06-09T09:52:59.0403297Z         "doc": {
2026-06-09T09:52:59.0403383Z           "complete": false,
2026-06-09T09:52:59.0403478Z           "evidence": []
2026-06-09T09:52:59.0403559Z         },
2026-06-09T09:52:59.0403650Z         "impl": {
2026-06-09T09:52:59.0403736Z           "complete": true,
2026-06-09T09:52:59.0403835Z           "evidence": [
2026-06-09T09:52:59.0403922Z             {
2026-06-09T09:52:59.0404037Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T09:52:59.0404130Z               "line": 22
2026-06-09T09:52:59.0404207Z             },
2026-06-09T09:52:59.0404295Z             {
2026-06-09T09:52:59.0404408Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0404488Z               "line": 479
2026-06-09T09:52:59.0404563Z             },
2026-06-09T09:52:59.0404650Z             {
2026-06-09T09:52:59.0404795Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T09:52:59.0404996Z               "line": 17
2026-06-09T09:52:59.0405082Z             },
2026-06-09T09:52:59.0405167Z             {
2026-06-09T09:52:59.0405287Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T09:52:59.0405387Z               "line": 140
2026-06-09T09:52:59.0405467Z             },
2026-06-09T09:52:59.0405553Z             {
2026-06-09T09:52:59.0405773Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0405863Z               "line": 194
2026-06-09T09:52:59.0405950Z             },
2026-06-09T09:52:59.0406030Z             {
2026-06-09T09:52:59.0406159Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0406241Z               "line": 219
2026-06-09T09:52:59.0406326Z             },
2026-06-09T09:52:59.0406407Z             {
2026-06-09T09:52:59.0406527Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0406618Z               "line": 245
2026-06-09T09:52:59.0406697Z             },
2026-06-09T09:52:59.0406794Z             {
2026-06-09T09:52:59.0406909Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.0406993Z               "line": 124
2026-06-09T09:52:59.0407075Z             },
2026-06-09T09:52:59.0407162Z             {
2026-06-09T09:52:59.0407280Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.0407379Z               "line": 224
2026-06-09T09:52:59.0407459Z             }
2026-06-09T09:52:59.0407541Z           ]
2026-06-09T09:52:59.0407628Z         },
2026-06-09T09:52:59.0407708Z         "int": {
2026-06-09T09:52:59.0407798Z           "complete": false,
2026-06-09T09:52:59.0407890Z           "evidence": []
2026-06-09T09:52:59.0407971Z         },
2026-06-09T09:52:59.0408056Z         "unit": {
2026-06-09T09:52:59.0408147Z           "complete": true,
2026-06-09T09:52:59.0408242Z           "evidence": [
2026-06-09T09:52:59.0408318Z             {
2026-06-09T09:52:59.0408442Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T09:52:59.0408533Z               "line": 62
2026-06-09T09:52:59.0408614Z             },
2026-06-09T09:52:59.0408699Z             {
2026-06-09T09:52:59.0408811Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T09:52:59.0408895Z               "line": 72
2026-06-09T09:52:59.0409062Z             },
2026-06-09T09:52:59.0409144Z             {
2026-06-09T09:52:59.0409276Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-09T09:52:59.0409377Z               "line": 84
2026-06-09T09:52:59.0409459Z             },
2026-06-09T09:52:59.0409539Z             {
2026-06-09T09:52:59.0409652Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T09:52:59.0409738Z               "line": 346
2026-06-09T09:52:59.0409824Z             },
2026-06-09T09:52:59.0409917Z             {
2026-06-09T09:52:59.0410026Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T09:52:59.0410112Z               "line": 274
2026-06-09T09:52:59.0410195Z             },
2026-06-09T09:52:59.0410293Z             {
2026-06-09T09:52:59.0410404Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T09:52:59.0410494Z               "line": 315
2026-06-09T09:52:59.0410584Z             },
2026-06-09T09:52:59.0410660Z             {
2026-06-09T09:52:59.0410781Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-09T09:52:59.0410871Z               "line": 353
2026-06-09T09:52:59.0410951Z             },
2026-06-09T09:52:59.0411034Z             {
2026-06-09T09:52:59.0411152Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0411242Z               "line": 656
2026-06-09T09:52:59.0411323Z             },
2026-06-09T09:52:59.0411410Z             {
2026-06-09T09:52:59.0411519Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.0411609Z               "line": 397
2026-06-09T09:52:59.0411696Z             },
2026-06-09T09:52:59.0411777Z             {
2026-06-09T09:52:59.0411891Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.0412087Z               "line": 440
2026-06-09T09:52:59.0412177Z             }
2026-06-09T09:52:59.0412259Z           ]
2026-06-09T09:52:59.0412340Z         }
2026-06-09T09:52:59.0412425Z       }
2026-06-09T09:52:59.0412510Z     },
2026-06-09T09:52:59.0412590Z     {
2026-06-09T09:52:59.0412700Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-09T09:52:59.0413009Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-09T09:52:59.0413104Z       "requiredStages": [
2026-06-09T09:52:59.0413189Z         "impl",
2026-06-09T09:52:59.0413271Z         "unit"
2026-06-09T09:52:59.0413352Z       ],
2026-06-09T09:52:59.0413438Z       "stages": {
2026-06-09T09:52:59.0413513Z         "doc": {
2026-06-09T09:52:59.0413605Z           "complete": false,
2026-06-09T09:52:59.0413681Z           "evidence": []
2026-06-09T09:52:59.0413771Z         },
2026-06-09T09:52:59.0413852Z         "impl": {
2026-06-09T09:52:59.0413934Z           "complete": true,
2026-06-09T09:52:59.0414033Z           "evidence": [
2026-06-09T09:52:59.0414109Z             {
2026-06-09T09:52:59.0414220Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T09:52:59.0414311Z               "line": 169
2026-06-09T09:52:59.0414395Z             }
2026-06-09T09:52:59.0414486Z           ]
2026-06-09T09:52:59.0414563Z         },
2026-06-09T09:52:59.0414658Z         "int": {
2026-06-09T09:52:59.0414749Z           "complete": true,
2026-06-09T09:52:59.0414845Z           "evidence": [
2026-06-09T09:52:59.0414926Z             {
2026-06-09T09:52:59.0415039Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-09T09:52:59.0415128Z               "line": 44
2026-06-09T09:52:59.0415210Z             },
2026-06-09T09:52:59.0415295Z             {
2026-06-09T09:52:59.0415403Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-09T09:52:59.0415494Z               "line": 66
2026-06-09T09:52:59.0415575Z             }
2026-06-09T09:52:59.0415666Z           ]
2026-06-09T09:52:59.0415751Z         },
2026-06-09T09:52:59.0415842Z         "unit": {
2026-06-09T09:52:59.0415937Z           "complete": true,
2026-06-09T09:52:59.0416022Z           "evidence": [
2026-06-09T09:52:59.0416103Z             {
2026-06-09T09:52:59.0416215Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T09:52:59.0416305Z               "line": 186
2026-06-09T09:52:59.0416399Z             },
2026-06-09T09:52:59.0416482Z             {
2026-06-09T09:52:59.0416600Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T09:52:59.0416695Z               "line": 238
2026-06-09T09:52:59.0416791Z             },
2026-06-09T09:52:59.0416863Z             {
2026-06-09T09:52:59.0416977Z               "path": "crates/spt-term/src/reader.rs",
2026-06-09T09:52:59.0417067Z               "line": 266
2026-06-09T09:52:59.0417150Z             }
2026-06-09T09:52:59.0417229Z           ]
2026-06-09T09:52:59.0417310Z         }
2026-06-09T09:52:59.0417392Z       }
2026-06-09T09:52:59.0417474Z     },
2026-06-09T09:52:59.0417553Z     {
2026-06-09T09:52:59.0417683Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-09T09:52:59.0418101Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-09T09:52:59.0418197Z       "requiredStages": [
2026-06-09T09:52:59.0418287Z         "impl",
2026-06-09T09:52:59.0418373Z         "unit",
2026-06-09T09:52:59.0418459Z         "int"
2026-06-09T09:52:59.0418554Z       ],
2026-06-09T09:52:59.0418653Z       "stages": {
2026-06-09T09:52:59.0418736Z         "doc": {
2026-06-09T09:52:59.0418831Z           "complete": false,
2026-06-09T09:52:59.0418916Z           "evidence": []
2026-06-09T09:52:59.0419084Z         },
2026-06-09T09:52:59.0419179Z         "impl": {
2026-06-09T09:52:59.0419269Z           "complete": true,
2026-06-09T09:52:59.0419361Z           "evidence": [
2026-06-09T09:52:59.0419441Z             {
2026-06-09T09:52:59.0419570Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0419775Z               "line": 150
2026-06-09T09:52:59.0419860Z             },
2026-06-09T09:52:59.0419937Z             {
2026-06-09T09:52:59.0420061Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0420156Z               "line": 174
2026-06-09T09:52:59.0420236Z             },
2026-06-09T09:52:59.0420416Z             {
2026-06-09T09:52:59.0420524Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.0420615Z               "line": 79
2026-06-09T09:52:59.0420702Z             },
2026-06-09T09:52:59.0420782Z             {
2026-06-09T09:52:59.0420891Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.0420978Z               "line": 51
2026-06-09T09:52:59.0421059Z             },
2026-06-09T09:52:59.0421140Z             {
2026-06-09T09:52:59.0421259Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0421350Z               "line": 154
2026-06-09T09:52:59.0421431Z             },
2026-06-09T09:52:59.0421520Z             {
2026-06-09T09:52:59.0421636Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0421726Z               "line": 27
2026-06-09T09:52:59.0421807Z             },
2026-06-09T09:52:59.0421893Z             {
2026-06-09T09:52:59.0422008Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0422103Z               "line": 79
2026-06-09T09:52:59.0422189Z             },
2026-06-09T09:52:59.0422266Z             {
2026-06-09T09:52:59.0422379Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0422470Z               "line": 102
2026-06-09T09:52:59.0422553Z             },
2026-06-09T09:52:59.0422638Z             {
2026-06-09T09:52:59.0422747Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0422843Z               "line": 116
2026-06-09T09:52:59.0422919Z             }
2026-06-09T09:52:59.0423009Z           ]
2026-06-09T09:52:59.0423089Z         },
2026-06-09T09:52:59.0423179Z         "int": {
2026-06-09T09:52:59.0423288Z           "complete": true,
2026-06-09T09:52:59.0423387Z           "evidence": [
2026-06-09T09:52:59.0423472Z             {
2026-06-09T09:52:59.0423598Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-09T09:52:59.0423688Z               "line": 35
2026-06-09T09:52:59.0423773Z             }
2026-06-09T09:52:59.0423865Z           ]
2026-06-09T09:52:59.0423955Z         },
2026-06-09T09:52:59.0424035Z         "unit": {
2026-06-09T09:52:59.0424126Z           "complete": true,
2026-06-09T09:52:59.0424208Z           "evidence": [
2026-06-09T09:52:59.0424299Z             {
2026-06-09T09:52:59.0424417Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0424508Z               "line": 584
2026-06-09T09:52:59.0424593Z             },
2026-06-09T09:52:59.0424674Z             {
2026-06-09T09:52:59.0424785Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0424871Z               "line": 351
2026-06-09T09:52:59.0424960Z             },
2026-06-09T09:52:59.0425037Z             {
2026-06-09T09:52:59.0425157Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0425242Z               "line": 124
2026-06-09T09:52:59.0425323Z             },
2026-06-09T09:52:59.0425410Z             {
2026-06-09T09:52:59.0425515Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0425613Z               "line": 143
2026-06-09T09:52:59.0425693Z             },
2026-06-09T09:52:59.0425779Z             {
2026-06-09T09:52:59.0425897Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0425972Z               "line": 160
2026-06-09T09:52:59.0426064Z             },
2026-06-09T09:52:59.0426140Z             {
2026-06-09T09:52:59.0426277Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0426359Z               "line": 187
2026-06-09T09:52:59.0426441Z             },
2026-06-09T09:52:59.0426527Z             {
2026-06-09T09:52:59.0426640Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-09T09:52:59.0426841Z               "line": 206
2026-06-09T09:52:59.0426921Z             },
2026-06-09T09:52:59.0427008Z             {
2026-06-09T09:52:59.0427108Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0427194Z               "line": 229
2026-06-09T09:52:59.0427347Z             }
2026-06-09T09:52:59.0427428Z           ]
2026-06-09T09:52:59.0427514Z         }
2026-06-09T09:52:59.0427594Z       }
2026-06-09T09:52:59.0427681Z     },
2026-06-09T09:52:59.0427761Z     {
2026-06-09T09:52:59.0427889Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-09T09:52:59.0428513Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-09T09:52:59.0428609Z       "requiredStages": [
2026-06-09T09:52:59.0428695Z         "impl",
2026-06-09T09:52:59.0428776Z         "unit"
2026-06-09T09:52:59.0428866Z       ],
2026-06-09T09:52:59.0429038Z       "stages": {
2026-06-09T09:52:59.0429123Z         "doc": {
2026-06-09T09:52:59.0429218Z           "complete": false,
2026-06-09T09:52:59.0429306Z           "evidence": []
2026-06-09T09:52:59.0429396Z         },
2026-06-09T09:52:59.0429490Z         "impl": {
2026-06-09T09:52:59.0429586Z           "complete": true,
2026-06-09T09:52:59.0429677Z           "evidence": [
2026-06-09T09:52:59.0429758Z             {
2026-06-09T09:52:59.0429887Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0429973Z               "line": 241
2026-06-09T09:52:59.0430058Z             },
2026-06-09T09:52:59.0430139Z             {
2026-06-09T09:52:59.0430265Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0430354Z               "line": 408
2026-06-09T09:52:59.0430435Z             }
2026-06-09T09:52:59.0430521Z           ]
2026-06-09T09:52:59.0430603Z         },
2026-06-09T09:52:59.0430701Z         "int": {
2026-06-09T09:52:59.0430786Z           "complete": false,
2026-06-09T09:52:59.0430877Z           "evidence": []
2026-06-09T09:52:59.0430962Z         },
2026-06-09T09:52:59.0431042Z         "unit": {
2026-06-09T09:52:59.0431137Z           "complete": true,
2026-06-09T09:52:59.0431224Z           "evidence": [
2026-06-09T09:52:59.0431324Z             {
2026-06-09T09:52:59.0431446Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-09T09:52:59.0431538Z               "line": 161
2026-06-09T09:52:59.0431624Z             }
2026-06-09T09:52:59.0431704Z           ]
2026-06-09T09:52:59.0431795Z         }
2026-06-09T09:52:59.0431877Z       }
2026-06-09T09:52:59.0431972Z     },
2026-06-09T09:52:59.0432053Z     {
2026-06-09T09:52:59.0432168Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-09T09:52:59.0432358Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-09T09:52:59.0432449Z       "requiredStages": [
2026-06-09T09:52:59.0432544Z         "impl",
2026-06-09T09:52:59.0432630Z         "unit"
2026-06-09T09:52:59.0432715Z       ],
2026-06-09T09:52:59.0432798Z       "stages": {
2026-06-09T09:52:59.0432883Z         "doc": {
2026-06-09T09:52:59.0432983Z           "complete": false,
2026-06-09T09:52:59.0433074Z           "evidence": []
2026-06-09T09:52:59.0433164Z         },
2026-06-09T09:52:59.0433249Z         "impl": {
2026-06-09T09:52:59.0433340Z           "complete": true,
2026-06-09T09:52:59.0433427Z           "evidence": [
2026-06-09T09:52:59.0433517Z             {
2026-06-09T09:52:59.0433635Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0433716Z               "line": 40
2026-06-09T09:52:59.0433806Z             },
2026-06-09T09:52:59.0433886Z             {
2026-06-09T09:52:59.0433999Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0434086Z               "line": 100
2026-06-09T09:52:59.0434172Z             },
2026-06-09T09:52:59.0434257Z             {
2026-06-09T09:52:59.0434473Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0434567Z               "line": 215
2026-06-09T09:52:59.0434647Z             },
2026-06-09T09:52:59.0434735Z             {
2026-06-09T09:52:59.0434844Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0434938Z               "line": 314
2026-06-09T09:52:59.0435121Z             }
2026-06-09T09:52:59.0435202Z           ]
2026-06-09T09:52:59.0435287Z         },
2026-06-09T09:52:59.0435369Z         "int": {
2026-06-09T09:52:59.0435464Z           "complete": false,
2026-06-09T09:52:59.0435549Z           "evidence": []
2026-06-09T09:52:59.0435640Z         },
2026-06-09T09:52:59.0435727Z         "unit": {
2026-06-09T09:52:59.0435816Z           "complete": true,
2026-06-09T09:52:59.0435907Z           "evidence": [
2026-06-09T09:52:59.0435989Z             {
2026-06-09T09:52:59.0436108Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0436192Z               "line": 352
2026-06-09T09:52:59.0436292Z             },
2026-06-09T09:52:59.0436378Z             {
2026-06-09T09:52:59.0436485Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0436576Z               "line": 409
2026-06-09T09:52:59.0436657Z             },
2026-06-09T09:52:59.0436744Z             {
2026-06-09T09:52:59.0436852Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0436953Z               "line": 458
2026-06-09T09:52:59.0437039Z             },
2026-06-09T09:52:59.0437120Z             {
2026-06-09T09:52:59.0437229Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0437316Z               "line": 479
2026-06-09T09:52:59.0437401Z             }
2026-06-09T09:52:59.0437495Z           ]
2026-06-09T09:52:59.0437573Z         }
2026-06-09T09:52:59.0437659Z       }
2026-06-09T09:52:59.0437739Z     },
2026-06-09T09:52:59.0437825Z     {
2026-06-09T09:52:59.0437945Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-09T09:52:59.0438078Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-09T09:52:59.0438183Z       "requiredStages": [
2026-06-09T09:52:59.0438260Z         "impl",
2026-06-09T09:52:59.0438350Z         "unit"
2026-06-09T09:52:59.0438431Z       ],
2026-06-09T09:52:59.0438517Z       "stages": {
2026-06-09T09:52:59.0438599Z         "doc": {
2026-06-09T09:52:59.0438692Z           "complete": false,
2026-06-09T09:52:59.0438788Z           "evidence": []
2026-06-09T09:52:59.0438875Z         },
2026-06-09T09:52:59.0439040Z         "impl": {
2026-06-09T09:52:59.0439130Z           "complete": true,
2026-06-09T09:52:59.0439221Z           "evidence": [
2026-06-09T09:52:59.0439304Z             {
2026-06-09T09:52:59.0439450Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0439541Z               "line": 113
2026-06-09T09:52:59.0439627Z             },
2026-06-09T09:52:59.0439712Z             {
2026-06-09T09:52:59.0439823Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0439917Z               "line": 208
2026-06-09T09:52:59.0440003Z             }
2026-06-09T09:52:59.0440098Z           ]
2026-06-09T09:52:59.0440181Z         },
2026-06-09T09:52:59.0440266Z         "int": {
2026-06-09T09:52:59.0440360Z           "complete": false,
2026-06-09T09:52:59.0440447Z           "evidence": []
2026-06-09T09:52:59.0440529Z         },
2026-06-09T09:52:59.0440618Z         "unit": {
2026-06-09T09:52:59.0440718Z           "complete": true,
2026-06-09T09:52:59.0440805Z           "evidence": [
2026-06-09T09:52:59.0440895Z             {
2026-06-09T09:52:59.0441009Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0441096Z               "line": 373
2026-06-09T09:52:59.0441187Z             },
2026-06-09T09:52:59.0441261Z             {
2026-06-09T09:52:59.0441375Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0441466Z               "line": 436
2026-06-09T09:52:59.0441546Z             }
2026-06-09T09:52:59.0441631Z           ]
2026-06-09T09:52:59.0441711Z         }
2026-06-09T09:52:59.0441902Z       }
2026-06-09T09:52:59.0441983Z     },
2026-06-09T09:52:59.0442069Z     {
2026-06-09T09:52:59.0442189Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-09T09:52:59.0443372Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-09T09:52:59.0443576Z       "requiredStages": [
2026-06-09T09:52:59.0443663Z         "impl",
2026-06-09T09:52:59.0443748Z         "unit"
2026-06-09T09:52:59.0443838Z       ],
2026-06-09T09:52:59.0443919Z       "stages": {
2026-06-09T09:52:59.0444012Z         "doc": {
2026-06-09T09:52:59.0444101Z           "complete": true,
2026-06-09T09:52:59.0444190Z           "evidence": [
2026-06-09T09:52:59.0444271Z             {
2026-06-09T09:52:59.0444404Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0444498Z               "line": 205
2026-06-09T09:52:59.0444578Z             }
2026-06-09T09:52:59.0444665Z           ]
2026-06-09T09:52:59.0444741Z         },
2026-06-09T09:52:59.0444831Z         "impl": {
2026-06-09T09:52:59.0444917Z           "complete": true,
2026-06-09T09:52:59.0445023Z           "evidence": [
2026-06-09T09:52:59.0445113Z             {
2026-06-09T09:52:59.0445227Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0445318Z               "line": 572
2026-06-09T09:52:59.0445404Z             },
2026-06-09T09:52:59.0445489Z             {
2026-06-09T09:52:59.0445600Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0445690Z               "line": 664
2026-06-09T09:52:59.0445780Z             },
2026-06-09T09:52:59.0445861Z             {
2026-06-09T09:52:59.0445986Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.0446075Z               "line": 183
2026-06-09T09:52:59.0446176Z             }
2026-06-09T09:52:59.0446254Z           ]
2026-06-09T09:52:59.0446343Z         },
2026-06-09T09:52:59.0446424Z         "int": {
2026-06-09T09:52:59.0446511Z           "complete": false,
2026-06-09T09:52:59.0446606Z           "evidence": []
2026-06-09T09:52:59.0446677Z         },
2026-06-09T09:52:59.0446781Z         "unit": {
2026-06-09T09:52:59.0446871Z           "complete": true,
2026-06-09T09:52:59.0446966Z           "evidence": [
2026-06-09T09:52:59.0447064Z             {
2026-06-09T09:52:59.0447203Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0447299Z               "line": 713
2026-06-09T09:52:59.0447379Z             },
2026-06-09T09:52:59.0447460Z             {
2026-06-09T09:52:59.0447585Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-09T09:52:59.0447680Z               "line": 44
2026-06-09T09:52:59.0447770Z             },
2026-06-09T09:52:59.0450077Z             {
2026-06-09T09:52:59.0450235Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-09T09:52:59.0450348Z               "line": 54
2026-06-09T09:52:59.0450436Z             },
2026-06-09T09:52:59.0450516Z             {
2026-06-09T09:52:59.0450668Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-09T09:52:59.0450765Z               "line": 51
2026-06-09T09:52:59.0450859Z             }
2026-06-09T09:52:59.0450944Z           ]
2026-06-09T09:52:59.0451027Z         }
2026-06-09T09:52:59.0451112Z       }
2026-06-09T09:52:59.0451203Z     },
2026-06-09T09:52:59.0451283Z     {
2026-06-09T09:52:59.0451413Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-09T09:52:59.0451631Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-09T09:52:59.0451728Z       "requiredStages": [
2026-06-09T09:52:59.0451812Z         "impl",
2026-06-09T09:52:59.0451902Z         "unit"
2026-06-09T09:52:59.0451983Z       ],
2026-06-09T09:52:59.0452073Z       "stages": {
2026-06-09T09:52:59.0452296Z         "doc": {
2026-06-09T09:52:59.0452377Z           "complete": false,
2026-06-09T09:52:59.0452453Z           "evidence": []
2026-06-09T09:52:59.0452534Z         },
2026-06-09T09:52:59.0452610Z         "impl": {
2026-06-09T09:52:59.0452687Z           "complete": true,
2026-06-09T09:52:59.0452782Z           "evidence": [
2026-06-09T09:52:59.0452988Z             {
2026-06-09T09:52:59.0453111Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0453201Z               "line": 26
2026-06-09T09:52:59.0453279Z             },
2026-06-09T09:52:59.0453369Z             {
2026-06-09T09:52:59.0453482Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0453569Z               "line": 135
2026-06-09T09:52:59.0453660Z             },
2026-06-09T09:52:59.0453741Z             {
2026-06-09T09:52:59.0453874Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T09:52:59.0453961Z               "line": 26
2026-06-09T09:52:59.0454045Z             },
2026-06-09T09:52:59.0454136Z             {
2026-06-09T09:52:59.0454257Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T09:52:59.0454350Z               "line": 237
2026-06-09T09:52:59.0454432Z             }
2026-06-09T09:52:59.0454519Z           ]
2026-06-09T09:52:59.0454595Z         },
2026-06-09T09:52:59.0454684Z         "int": {
2026-06-09T09:52:59.0454778Z           "complete": false,
2026-06-09T09:52:59.0454869Z           "evidence": []
2026-06-09T09:52:59.0454954Z         },
2026-06-09T09:52:59.0455039Z         "unit": {
2026-06-09T09:52:59.0455129Z           "complete": true,
2026-06-09T09:52:59.0455220Z           "evidence": [
2026-06-09T09:52:59.0455302Z             {
2026-06-09T09:52:59.0455434Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0455526Z               "line": 161
2026-06-09T09:52:59.0455611Z             },
2026-06-09T09:52:59.0455692Z             {
2026-06-09T09:52:59.0455807Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0455902Z               "line": 170
2026-06-09T09:52:59.0455988Z             },
2026-06-09T09:52:59.0456068Z             {
2026-06-09T09:52:59.0456189Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0456274Z               "line": 179
2026-06-09T09:52:59.0456355Z             },
2026-06-09T09:52:59.0456450Z             {
2026-06-09T09:52:59.0456560Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0456660Z               "line": 190
2026-06-09T09:52:59.0456741Z             },
2026-06-09T09:52:59.0456828Z             {
2026-06-09T09:52:59.0456941Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0457032Z               "line": 199
2026-06-09T09:52:59.0457119Z             },
2026-06-09T09:52:59.0457204Z             {
2026-06-09T09:52:59.0457317Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0457402Z               "line": 216
2026-06-09T09:52:59.0457493Z             },
2026-06-09T09:52:59.0457587Z             {
2026-06-09T09:52:59.0457696Z               "path": "crates/spt-live/src/context.rs",
2026-06-09T09:52:59.0457787Z               "line": 242
2026-06-09T09:52:59.0457869Z             },
2026-06-09T09:52:59.0457958Z             {
2026-06-09T09:52:59.0458073Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0458169Z               "line": 257
2026-06-09T09:52:59.0458254Z             },
2026-06-09T09:52:59.0458335Z             {
2026-06-09T09:52:59.0458450Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0458536Z               "line": 244
2026-06-09T09:52:59.0458625Z             },
2026-06-09T09:52:59.0458741Z             {
2026-06-09T09:52:59.0458879Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T09:52:59.0459042Z               "line": 265
2026-06-09T09:52:59.0459127Z             },
2026-06-09T09:52:59.0459218Z             {
2026-06-09T09:52:59.0459332Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T09:52:59.0459598Z               "line": 293
2026-06-09T09:52:59.0459690Z             },
2026-06-09T09:52:59.0459771Z             {
2026-06-09T09:52:59.0459880Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T09:52:59.0459972Z               "line": 317
2026-06-09T09:52:59.0460062Z             },
2026-06-09T09:52:59.0460236Z             {
2026-06-09T09:52:59.0460371Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-09T09:52:59.0460466Z               "line": 327
2026-06-09T09:52:59.0460541Z             },
2026-06-09T09:52:59.0460633Z             {
2026-06-09T09:52:59.0460742Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.0460837Z               "line": 540
2026-06-09T09:52:59.0460918Z             }
2026-06-09T09:52:59.0460991Z           ]
2026-06-09T09:52:59.0461081Z         }
2026-06-09T09:52:59.0461152Z       }
2026-06-09T09:52:59.0461243Z     },
2026-06-09T09:52:59.0461334Z     {
2026-06-09T09:52:59.0461467Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-09T09:52:59.0461620Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-09T09:52:59.0461724Z       "requiredStages": [
2026-06-09T09:52:59.0461819Z         "impl",
2026-06-09T09:52:59.0461907Z         "unit"
2026-06-09T09:52:59.0461997Z       ],
2026-06-09T09:52:59.0462081Z       "stages": {
2026-06-09T09:52:59.0462178Z         "doc": {
2026-06-09T09:52:59.0462269Z           "complete": false,
2026-06-09T09:52:59.0462363Z           "evidence": []
2026-06-09T09:52:59.0462448Z         },
2026-06-09T09:52:59.0462534Z         "impl": {
2026-06-09T09:52:59.0462629Z           "complete": true,
2026-06-09T09:52:59.0462717Z           "evidence": [
2026-06-09T09:52:59.0462803Z             {
2026-06-09T09:52:59.0462913Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.0463004Z               "line": 25
2026-06-09T09:52:59.0463094Z             },
2026-06-09T09:52:59.0463175Z             {
2026-06-09T09:52:59.0463295Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0463389Z               "line": 26
2026-06-09T09:52:59.0463475Z             },
2026-06-09T09:52:59.0463558Z             {
2026-06-09T09:52:59.0463671Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0463761Z               "line": 159
2026-06-09T09:52:59.0463853Z             }
2026-06-09T09:52:59.0463938Z           ]
2026-06-09T09:52:59.0464019Z         },
2026-06-09T09:52:59.0464105Z         "int": {
2026-06-09T09:52:59.0464197Z           "complete": false,
2026-06-09T09:52:59.0464291Z           "evidence": []
2026-06-09T09:52:59.0464377Z         },
2026-06-09T09:52:59.0464459Z         "unit": {
2026-06-09T09:52:59.0464554Z           "complete": true,
2026-06-09T09:52:59.0464644Z           "evidence": [
2026-06-09T09:52:59.0464734Z             {
2026-06-09T09:52:59.0464841Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.0464924Z               "line": 184
2026-06-09T09:52:59.0465016Z             },
2026-06-09T09:52:59.0465146Z             {
2026-06-09T09:52:59.0465273Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.0465362Z               "line": 236
2026-06-09T09:52:59.0465449Z             },
2026-06-09T09:52:59.0465529Z             {
2026-06-09T09:52:59.0465651Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0465751Z               "line": 186
2026-06-09T09:52:59.0465828Z             }
2026-06-09T09:52:59.0465918Z           ]
2026-06-09T09:52:59.0465999Z         }
2026-06-09T09:52:59.0466096Z       }
2026-06-09T09:52:59.0466176Z     },
2026-06-09T09:52:59.0466261Z     {
2026-06-09T09:52:59.0466376Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-09T09:52:59.0466534Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-09T09:52:59.0466633Z       "requiredStages": [
2026-06-09T09:52:59.0466720Z         "impl",
2026-06-09T09:52:59.0466810Z         "unit"
2026-06-09T09:52:59.0466891Z       ],
2026-06-09T09:52:59.0466981Z       "stages": {
2026-06-09T09:52:59.0467153Z         "doc": {
2026-06-09T09:52:59.0467244Z           "complete": false,
2026-06-09T09:52:59.0467340Z           "evidence": []
2026-06-09T09:52:59.0467421Z         },
2026-06-09T09:52:59.0467511Z         "impl": {
2026-06-09T09:52:59.0467601Z           "complete": true,
2026-06-09T09:52:59.0467689Z           "evidence": [
2026-06-09T09:52:59.0467854Z             {
2026-06-09T09:52:59.0467967Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0468063Z               "line": 48
2026-06-09T09:52:59.0468142Z             },
2026-06-09T09:52:59.0468232Z             {
2026-06-09T09:52:59.0468342Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0468434Z               "line": 55
2026-06-09T09:52:59.0468523Z             },
2026-06-09T09:52:59.0468609Z             {
2026-06-09T09:52:59.0468720Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0468809Z               "line": 74
2026-06-09T09:52:59.0468909Z             },
2026-06-09T09:52:59.0469081Z             {
2026-06-09T09:52:59.0469199Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0469297Z               "line": 91
2026-06-09T09:52:59.0469377Z             }
2026-06-09T09:52:59.0469467Z           ]
2026-06-09T09:52:59.0469548Z         },
2026-06-09T09:52:59.0469640Z         "int": {
2026-06-09T09:52:59.0469734Z           "complete": false,
2026-06-09T09:52:59.0469829Z           "evidence": []
2026-06-09T09:52:59.0469917Z         },
2026-06-09T09:52:59.0469997Z         "unit": {
2026-06-09T09:52:59.0470092Z           "complete": true,
2026-06-09T09:52:59.0470178Z           "evidence": [
2026-06-09T09:52:59.0470269Z             {
2026-06-09T09:52:59.0470378Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0470473Z               "line": 149
2026-06-09T09:52:59.0470556Z             },
2026-06-09T09:52:59.0470641Z             {
2026-06-09T09:52:59.0470758Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0470854Z               "line": 166
2026-06-09T09:52:59.0470941Z             },
2026-06-09T09:52:59.0471017Z             {
2026-06-09T09:52:59.0471135Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0471226Z               "line": 176
2026-06-09T09:52:59.0471307Z             },
2026-06-09T09:52:59.0471402Z             {
2026-06-09T09:52:59.0471513Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0471603Z               "line": 194
2026-06-09T09:52:59.0471693Z             },
2026-06-09T09:52:59.0471774Z             {
2026-06-09T09:52:59.0471889Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0471974Z               "line": 207
2026-06-09T09:52:59.0472059Z             }
2026-06-09T09:52:59.0472142Z           ]
2026-06-09T09:52:59.0472233Z         }
2026-06-09T09:52:59.0472318Z       }
2026-06-09T09:52:59.0472403Z     },
2026-06-09T09:52:59.0472490Z     {
2026-06-09T09:52:59.0472608Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-09T09:52:59.0472805Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-09T09:52:59.0472900Z       "requiredStages": [
2026-06-09T09:52:59.0472989Z         "impl",
2026-06-09T09:52:59.0473079Z         "unit"
2026-06-09T09:52:59.0473161Z       ],
2026-06-09T09:52:59.0473259Z       "stages": {
2026-06-09T09:52:59.0473344Z         "doc": {
2026-06-09T09:52:59.0473440Z           "complete": false,
2026-06-09T09:52:59.0473526Z           "evidence": []
2026-06-09T09:52:59.0473616Z         },
2026-06-09T09:52:59.0473711Z         "impl": {
2026-06-09T09:52:59.0473803Z           "complete": true,
2026-06-09T09:52:59.0473898Z           "evidence": [
2026-06-09T09:52:59.0473978Z             {
2026-06-09T09:52:59.0474108Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0474193Z               "line": 373
2026-06-09T09:52:59.0474288Z             },
2026-06-09T09:52:59.0474370Z             {
2026-06-09T09:52:59.0474598Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0474689Z               "line": 26
2026-06-09T09:52:59.0474776Z             }
2026-06-09T09:52:59.0474866Z           ]
2026-06-09T09:52:59.0474946Z         },
2026-06-09T09:52:59.0475038Z         "int": {
2026-06-09T09:52:59.0475133Z           "complete": false,
2026-06-09T09:52:59.0475314Z           "evidence": []
2026-06-09T09:52:59.0475461Z         },
2026-06-09T09:52:59.0475566Z         "unit": {
2026-06-09T09:52:59.0475663Z           "complete": true,
2026-06-09T09:52:59.0475753Z           "evidence": [
2026-06-09T09:52:59.0475837Z             {
2026-06-09T09:52:59.0475956Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0476042Z               "line": 150
2026-06-09T09:52:59.0476135Z             },
2026-06-09T09:52:59.0476216Z             {
2026-06-09T09:52:59.0476326Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0476412Z               "line": 208
2026-06-09T09:52:59.0476507Z             }
2026-06-09T09:52:59.0476592Z           ]
2026-06-09T09:52:59.0476675Z         }
2026-06-09T09:52:59.0476765Z       }
2026-06-09T09:52:59.0476845Z     },
2026-06-09T09:52:59.0476932Z     {
2026-06-09T09:52:59.0477046Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-09T09:52:59.0478442Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-09T09:52:59.0478561Z       "requiredStages": [
2026-06-09T09:52:59.0478646Z         "doc",
2026-06-09T09:52:59.0478735Z         "impl",
2026-06-09T09:52:59.0478811Z         "unit"
2026-06-09T09:52:59.0478888Z       ],
2026-06-09T09:52:59.0479064Z       "stages": {
2026-06-09T09:52:59.0479160Z         "doc": {
2026-06-09T09:52:59.0479256Z           "complete": true,
2026-06-09T09:52:59.0479346Z           "evidence": [
2026-06-09T09:52:59.0479426Z             {
2026-06-09T09:52:59.0479528Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0479613Z               "line": 213
2026-06-09T09:52:59.0479717Z             }
2026-06-09T09:52:59.0479799Z           ]
2026-06-09T09:52:59.0479880Z         },
2026-06-09T09:52:59.0479956Z         "impl": {
2026-06-09T09:52:59.0480051Z           "complete": true,
2026-06-09T09:52:59.0480137Z           "evidence": [
2026-06-09T09:52:59.0480219Z             {
2026-06-09T09:52:59.0480342Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0480428Z               "line": 54
2026-06-09T09:52:59.0480515Z             },
2026-06-09T09:52:59.0480595Z             {
2026-06-09T09:52:59.0480723Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0480811Z               "line": 490
2026-06-09T09:52:59.0480900Z             },
2026-06-09T09:52:59.0480991Z             {
2026-06-09T09:52:59.0481106Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0481201Z               "line": 36
2026-06-09T09:52:59.0481281Z             },
2026-06-09T09:52:59.0481366Z             {
2026-06-09T09:52:59.0481491Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0481581Z               "line": 59
2026-06-09T09:52:59.0481661Z             },
2026-06-09T09:52:59.0481743Z             {
2026-06-09T09:52:59.0481863Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0481948Z               "line": 83
2026-06-09T09:52:59.0482039Z             },
2026-06-09T09:52:59.0482120Z             {
2026-06-09T09:52:59.0482244Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0482334Z               "line": 140
2026-06-09T09:52:59.0482421Z             },
2026-06-09T09:52:59.0482506Z             {
2026-06-09T09:52:59.0482726Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0482821Z               "line": 159
2026-06-09T09:52:59.0482902Z             },
2026-06-09T09:52:59.0482988Z             {
2026-06-09T09:52:59.0483112Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0483196Z               "line": 384
2026-06-09T09:52:59.0483394Z             },
2026-06-09T09:52:59.0483478Z             {
2026-06-09T09:52:59.0483597Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0483692Z               "line": 526
2026-06-09T09:52:59.0483777Z             },
2026-06-09T09:52:59.0483857Z             {
2026-06-09T09:52:59.0483971Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0484063Z               "line": 572
2026-06-09T09:52:59.0484143Z             },
2026-06-09T09:52:59.0484228Z             {
2026-06-09T09:52:59.0484338Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0484424Z               "line": 145
2026-06-09T09:52:59.0484519Z             },
2026-06-09T09:52:59.0484605Z             {
2026-06-09T09:52:59.0484716Z               "path": "crates/spt/src/main.rs",
2026-06-09T09:52:59.0484806Z               "line": 39
2026-06-09T09:52:59.0484891Z             }
2026-06-09T09:52:59.0484978Z           ]
2026-06-09T09:52:59.0485068Z         },
2026-06-09T09:52:59.0485149Z         "int": {
2026-06-09T09:52:59.0485239Z           "complete": false,
2026-06-09T09:52:59.0485331Z           "evidence": []
2026-06-09T09:52:59.0485421Z         },
2026-06-09T09:52:59.0485535Z         "unit": {
2026-06-09T09:52:59.0485627Z           "complete": true,
2026-06-09T09:52:59.0485712Z           "evidence": [
2026-06-09T09:52:59.0485802Z             {
2026-06-09T09:52:59.0485918Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0486008Z               "line": 785
2026-06-09T09:52:59.0486088Z             },
2026-06-09T09:52:59.0486175Z             {
2026-06-09T09:52:59.0486300Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0486397Z               "line": 826
2026-06-09T09:52:59.0486483Z             },
2026-06-09T09:52:59.0486564Z             {
2026-06-09T09:52:59.0486687Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0486771Z               "line": 900
2026-06-09T09:52:59.0486863Z             }
2026-06-09T09:52:59.0486948Z           ]
2026-06-09T09:52:59.0487029Z         }
2026-06-09T09:52:59.0487115Z       }
2026-06-09T09:52:59.0487196Z     },
2026-06-09T09:52:59.0487282Z     {
2026-06-09T09:52:59.0487396Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-09T09:52:59.0489253Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-09T09:52:59.0489366Z       "requiredStages": [
2026-06-09T09:52:59.0489453Z         "impl",
2026-06-09T09:52:59.0489563Z         "unit"
2026-06-09T09:52:59.0489643Z       ],
2026-06-09T09:52:59.0489729Z       "stages": {
2026-06-09T09:52:59.0489811Z         "doc": {
2026-06-09T09:52:59.0489901Z           "complete": false,
2026-06-09T09:52:59.0489996Z           "evidence": []
2026-06-09T09:52:59.0490078Z         },
2026-06-09T09:52:59.0490168Z         "impl": {
2026-06-09T09:52:59.0490258Z           "complete": true,
2026-06-09T09:52:59.0490349Z           "evidence": [
2026-06-09T09:52:59.0490436Z             {
2026-06-09T09:52:59.0490559Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0490654Z               "line": 31
2026-06-09T09:52:59.0490855Z             }
2026-06-09T09:52:59.0490940Z           ]
2026-06-09T09:52:59.0491027Z         },
2026-06-09T09:52:59.0491108Z         "int": {
2026-06-09T09:52:59.0491202Z           "complete": false,
2026-06-09T09:52:59.0491284Z           "evidence": []
2026-06-09T09:52:59.0491371Z         },
2026-06-09T09:52:59.0491551Z         "unit": {
2026-06-09T09:52:59.0491638Z           "complete": true,
2026-06-09T09:52:59.0491728Z           "evidence": [
2026-06-09T09:52:59.0491808Z             {
2026-06-09T09:52:59.0491955Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0492041Z               "line": 181
2026-06-09T09:52:59.0492132Z             }
2026-06-09T09:52:59.0492212Z           ]
2026-06-09T09:52:59.0492298Z         }
2026-06-09T09:52:59.0492385Z       }
2026-06-09T09:52:59.0492456Z     },
2026-06-09T09:52:59.0492546Z     {
2026-06-09T09:52:59.0492661Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-09T09:52:59.0492818Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-09T09:52:59.0492919Z       "requiredStages": [
2026-06-09T09:52:59.0493014Z         "impl",
2026-06-09T09:52:59.0493099Z         "unit"
2026-06-09T09:52:59.0493180Z       ],
2026-06-09T09:52:59.0493267Z       "stages": {
2026-06-09T09:52:59.0493343Z         "doc": {
2026-06-09T09:52:59.0493448Z           "complete": false,
2026-06-09T09:52:59.0493533Z           "evidence": []
2026-06-09T09:52:59.0493620Z         },
2026-06-09T09:52:59.0493705Z         "impl": {
2026-06-09T09:52:59.0493796Z           "complete": true,
2026-06-09T09:52:59.0493882Z           "evidence": [
2026-06-09T09:52:59.0493968Z             {
2026-06-09T09:52:59.0494090Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0494176Z               "line": 49
2026-06-09T09:52:59.0494262Z             },
2026-06-09T09:52:59.0494347Z             {
2026-06-09T09:52:59.0494455Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0494546Z               "line": 81
2026-06-09T09:52:59.0494632Z             }
2026-06-09T09:52:59.0494718Z           ]
2026-06-09T09:52:59.0494803Z         },
2026-06-09T09:52:59.0494889Z         "int": {
2026-06-09T09:52:59.0494984Z           "complete": false,
2026-06-09T09:52:59.0495070Z           "evidence": []
2026-06-09T09:52:59.0495156Z         },
2026-06-09T09:52:59.0495243Z         "unit": {
2026-06-09T09:52:59.0495342Z           "complete": true,
2026-06-09T09:52:59.0495432Z           "evidence": [
2026-06-09T09:52:59.0495515Z             {
2026-06-09T09:52:59.0495633Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0495718Z               "line": 156
2026-06-09T09:52:59.0495809Z             },
2026-06-09T09:52:59.0495891Z             {
2026-06-09T09:52:59.0496010Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0496095Z               "line": 173
2026-06-09T09:52:59.0496177Z             },
2026-06-09T09:52:59.0496258Z             {
2026-06-09T09:52:59.0496371Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0496469Z               "line": 196
2026-06-09T09:52:59.0496549Z             }
2026-06-09T09:52:59.0496633Z           ]
2026-06-09T09:52:59.0496715Z         }
2026-06-09T09:52:59.0496802Z       }
2026-06-09T09:52:59.0496888Z     },
2026-06-09T09:52:59.0496967Z     {
2026-06-09T09:52:59.0497100Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-09T09:52:59.0497265Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-09T09:52:59.0497365Z       "requiredStages": [
2026-06-09T09:52:59.0497437Z         "impl",
2026-06-09T09:52:59.0497523Z         "unit"
2026-06-09T09:52:59.0497608Z       ],
2026-06-09T09:52:59.0497689Z       "stages": {
2026-06-09T09:52:59.0497771Z         "doc": {
2026-06-09T09:52:59.0497861Z           "complete": false,
2026-06-09T09:52:59.0497956Z           "evidence": []
2026-06-09T09:52:59.0498037Z         },
2026-06-09T09:52:59.0498124Z         "impl": {
2026-06-09T09:52:59.0498304Z           "complete": true,
2026-06-09T09:52:59.0498391Z           "evidence": [
2026-06-09T09:52:59.0498477Z             {
2026-06-09T09:52:59.0498590Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0498681Z               "line": 120
2026-06-09T09:52:59.0498763Z             }
2026-06-09T09:52:59.0498919Z           ]
2026-06-09T09:52:59.0499088Z         },
2026-06-09T09:52:59.0499171Z         "int": {
2026-06-09T09:52:59.0499272Z           "complete": false,
2026-06-09T09:52:59.0499359Z           "evidence": []
2026-06-09T09:52:59.0499449Z         },
2026-06-09T09:52:59.0499534Z         "unit": {
2026-06-09T09:52:59.0499628Z           "complete": true,
2026-06-09T09:52:59.0499720Z           "evidence": [
2026-06-09T09:52:59.0499804Z             {
2026-06-09T09:52:59.0499926Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0500013Z               "line": 212
2026-06-09T09:52:59.0500100Z             },
2026-06-09T09:52:59.0500180Z             {
2026-06-09T09:52:59.0500313Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0500400Z               "line": 221
2026-06-09T09:52:59.0500480Z             },
2026-06-09T09:52:59.0500575Z             {
2026-06-09T09:52:59.0500686Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0500781Z               "line": 229
2026-06-09T09:52:59.0500866Z             },
2026-06-09T09:52:59.0500953Z             {
2026-06-09T09:52:59.0501076Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0501161Z               "line": 239
2026-06-09T09:52:59.0501248Z             },
2026-06-09T09:52:59.0501330Z             {
2026-06-09T09:52:59.0501448Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-09T09:52:59.0501534Z               "line": 249
2026-06-09T09:52:59.0501616Z             }
2026-06-09T09:52:59.0501700Z           ]
2026-06-09T09:52:59.0501787Z         }
2026-06-09T09:52:59.0501873Z       }
2026-06-09T09:52:59.0501950Z     },
2026-06-09T09:52:59.0502043Z     {
2026-06-09T09:52:59.0502159Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-09T09:52:59.0502321Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-09T09:52:59.0502415Z       "requiredStages": [
2026-06-09T09:52:59.0502500Z         "impl",
2026-06-09T09:52:59.0502592Z         "unit"
2026-06-09T09:52:59.0502678Z       ],
2026-06-09T09:52:59.0502773Z       "stages": {
2026-06-09T09:52:59.0502854Z         "doc": {
2026-06-09T09:52:59.0502945Z           "complete": false,
2026-06-09T09:52:59.0503035Z           "evidence": []
2026-06-09T09:52:59.0503115Z         },
2026-06-09T09:52:59.0503198Z         "impl": {
2026-06-09T09:52:59.0503288Z           "complete": true,
2026-06-09T09:52:59.0503378Z           "evidence": [
2026-06-09T09:52:59.0503459Z             {
2026-06-09T09:52:59.0503569Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.0503664Z               "line": 14
2026-06-09T09:52:59.0503745Z             },
2026-06-09T09:52:59.0503842Z             {
2026-06-09T09:52:59.0503950Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.0504046Z               "line": 62
2026-06-09T09:52:59.0504127Z             }
2026-06-09T09:52:59.0504213Z           ]
2026-06-09T09:52:59.0504298Z         },
2026-06-09T09:52:59.0504380Z         "int": {
2026-06-09T09:52:59.0504486Z           "complete": false,
2026-06-09T09:52:59.0504576Z           "evidence": []
2026-06-09T09:52:59.0504660Z         },
2026-06-09T09:52:59.0504741Z         "unit": {
2026-06-09T09:52:59.0504836Z           "complete": true,
2026-06-09T09:52:59.0504930Z           "evidence": [
2026-06-09T09:52:59.0505010Z             {
2026-06-09T09:52:59.0505120Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.0505207Z               "line": 160
2026-06-09T09:52:59.0505297Z             },
2026-06-09T09:52:59.0505377Z             {
2026-06-09T09:52:59.0505488Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.0505569Z               "line": 197
2026-06-09T09:52:59.0505745Z             },
2026-06-09T09:52:59.0505836Z             {
2026-06-09T09:52:59.0505935Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.0506031Z               "line": 219
2026-06-09T09:52:59.0506112Z             }
2026-06-09T09:52:59.0506212Z           ]
2026-06-09T09:52:59.0506399Z         }
2026-06-09T09:52:59.0506479Z       }
2026-06-09T09:52:59.0506565Z     },
2026-06-09T09:52:59.0506645Z     {
2026-06-09T09:52:59.0506752Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-09T09:52:59.0508088Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-09T09:52:59.0508206Z       "requiredStages": [],
2026-06-09T09:52:59.0508297Z       "stages": {
2026-06-09T09:52:59.0508379Z         "doc": {
2026-06-09T09:52:59.0508474Z           "complete": true,
2026-06-09T09:52:59.0508559Z           "evidence": [
2026-06-09T09:52:59.0508646Z             {
2026-06-09T09:52:59.0508755Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0508854Z               "line": 164
2026-06-09T09:52:59.0509037Z             }
2026-06-09T09:52:59.0509123Z           ]
2026-06-09T09:52:59.0509208Z         },
2026-06-09T09:52:59.0509295Z         "impl": {
2026-06-09T09:52:59.0509389Z           "complete": false,
2026-06-09T09:52:59.0509479Z           "evidence": []
2026-06-09T09:52:59.0509561Z         },
2026-06-09T09:52:59.0509652Z         "int": {
2026-06-09T09:52:59.0509741Z           "complete": false,
2026-06-09T09:52:59.0509837Z           "evidence": []
2026-06-09T09:52:59.0509915Z         },
2026-06-09T09:52:59.0510005Z         "unit": {
2026-06-09T09:52:59.0510108Z           "complete": false,
2026-06-09T09:52:59.0510198Z           "evidence": []
2026-06-09T09:52:59.0510294Z         }
2026-06-09T09:52:59.0510373Z       }
2026-06-09T09:52:59.0510458Z     },
2026-06-09T09:52:59.0510540Z     {
2026-06-09T09:52:59.0510660Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-09T09:52:59.0510873Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-09T09:52:59.0510969Z       "requiredStages": [
2026-06-09T09:52:59.0511059Z         "impl",
2026-06-09T09:52:59.0511140Z         "unit"
2026-06-09T09:52:59.0511222Z       ],
2026-06-09T09:52:59.0511307Z       "stages": {
2026-06-09T09:52:59.0511392Z         "doc": {
2026-06-09T09:52:59.0511484Z           "complete": false,
2026-06-09T09:52:59.0511575Z           "evidence": []
2026-06-09T09:52:59.0511660Z         },
2026-06-09T09:52:59.0511741Z         "impl": {
2026-06-09T09:52:59.0511837Z           "complete": true,
2026-06-09T09:52:59.0511927Z           "evidence": [
2026-06-09T09:52:59.0512018Z             {
2026-06-09T09:52:59.0512138Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0512224Z               "line": 76
2026-06-09T09:52:59.0512308Z             },
2026-06-09T09:52:59.0512395Z             {
2026-06-09T09:52:59.0512510Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0512603Z               "line": 167
2026-06-09T09:52:59.0512695Z             },
2026-06-09T09:52:59.0512782Z             {
2026-06-09T09:52:59.0512891Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0512980Z               "line": 233
2026-06-09T09:52:59.0513065Z             },
2026-06-09T09:52:59.0513147Z             {
2026-06-09T09:52:59.0513257Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0513347Z               "line": 272
2026-06-09T09:52:59.0513428Z             }
2026-06-09T09:52:59.0513510Z           ]
2026-06-09T09:52:59.0513595Z         },
2026-06-09T09:52:59.0513676Z         "int": {
2026-06-09T09:52:59.0513901Z           "complete": false,
2026-06-09T09:52:59.0513991Z           "evidence": []
2026-06-09T09:52:59.0514077Z         },
2026-06-09T09:52:59.0514163Z         "unit": {
2026-06-09T09:52:59.0514253Z           "complete": true,
2026-06-09T09:52:59.0514343Z           "evidence": [
2026-06-09T09:52:59.0514426Z             {
2026-06-09T09:52:59.0514630Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0514722Z               "line": 321
2026-06-09T09:52:59.0514807Z             },
2026-06-09T09:52:59.0514892Z             {
2026-06-09T09:52:59.0514997Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0515088Z               "line": 329
2026-06-09T09:52:59.0515173Z             },
2026-06-09T09:52:59.0515258Z             {
2026-06-09T09:52:59.0515373Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0515457Z               "line": 356
2026-06-09T09:52:59.0515542Z             },
2026-06-09T09:52:59.0515622Z             {
2026-06-09T09:52:59.0515748Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0515838Z               "line": 395
2026-06-09T09:52:59.0515923Z             },
2026-06-09T09:52:59.0516010Z             {
2026-06-09T09:52:59.0516119Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0516219Z               "line": 406
2026-06-09T09:52:59.0516300Z             },
2026-06-09T09:52:59.0516382Z             {
2026-06-09T09:52:59.0516490Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0516581Z               "line": 418
2026-06-09T09:52:59.0516663Z             },
2026-06-09T09:52:59.0516734Z             {
2026-06-09T09:52:59.0516848Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-09T09:52:59.0516934Z               "line": 442
2026-06-09T09:52:59.0517021Z             }
2026-06-09T09:52:59.0517101Z           ]
2026-06-09T09:52:59.0517191Z         }
2026-06-09T09:52:59.0519806Z       }
2026-06-09T09:52:59.0519926Z     },
2026-06-09T09:52:59.0520044Z     {
2026-06-09T09:52:59.0520165Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-09T09:52:59.0520350Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-09T09:52:59.0520451Z       "requiredStages": [
2026-06-09T09:52:59.0520551Z         "impl",
2026-06-09T09:52:59.0520654Z         "int"
2026-06-09T09:52:59.0520753Z       ],
2026-06-09T09:52:59.0520854Z       "stages": {
2026-06-09T09:52:59.0520948Z         "doc": {
2026-06-09T09:52:59.0521061Z           "complete": false,
2026-06-09T09:52:59.0521157Z           "evidence": []
2026-06-09T09:52:59.0521258Z         },
2026-06-09T09:52:59.0521357Z         "impl": {
2026-06-09T09:52:59.0521453Z           "complete": true,
2026-06-09T09:52:59.0521558Z           "evidence": [
2026-06-09T09:52:59.0521647Z             {
2026-06-09T09:52:59.0521787Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0521882Z               "line": 22
2026-06-09T09:52:59.0521976Z             }
2026-06-09T09:52:59.0522097Z           ]
2026-06-09T09:52:59.0522182Z         },
2026-06-09T09:52:59.0522286Z         "int": {
2026-06-09T09:52:59.0522393Z           "complete": true,
2026-06-09T09:52:59.0522497Z           "evidence": [
2026-06-09T09:52:59.0522587Z             {
2026-06-09T09:52:59.0522736Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-09T09:52:59.0522849Z               "line": 18
2026-06-09T09:52:59.0522935Z             }
2026-06-09T09:52:59.0523032Z           ]
2026-06-09T09:52:59.0523122Z         },
2026-06-09T09:52:59.0523222Z         "unit": {
2026-06-09T09:52:59.0523318Z           "complete": false,
2026-06-09T09:52:59.0523419Z           "evidence": []
2026-06-09T09:52:59.0523516Z         }
2026-06-09T09:52:59.0523602Z       }
2026-06-09T09:52:59.0523707Z     },
2026-06-09T09:52:59.0523798Z     {
2026-06-09T09:52:59.0523930Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-09T09:52:59.0524132Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-09T09:52:59.0524432Z       "requiredStages": [
2026-06-09T09:52:59.0524527Z         "impl",
2026-06-09T09:52:59.0524618Z         "unit"
2026-06-09T09:52:59.0524718Z       ],
2026-06-09T09:52:59.0524808Z       "stages": {
2026-06-09T09:52:59.0524903Z         "doc": {
2026-06-09T09:52:59.0525000Z           "complete": false,
2026-06-09T09:52:59.0525213Z           "evidence": []
2026-06-09T09:52:59.0525310Z         },
2026-06-09T09:52:59.0525399Z         "impl": {
2026-06-09T09:52:59.0525514Z           "complete": true,
2026-06-09T09:52:59.0525606Z           "evidence": [
2026-06-09T09:52:59.0525704Z             {
2026-06-09T09:52:59.0525832Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0544370Z               "line": 372
2026-06-09T09:52:59.0544500Z             },
2026-06-09T09:52:59.0544595Z             {
2026-06-09T09:52:59.0544755Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0544852Z               "line": 27
2026-06-09T09:52:59.0544956Z             }
2026-06-09T09:52:59.0545114Z           ]
2026-06-09T09:52:59.0545204Z         },
2026-06-09T09:52:59.0545294Z         "int": {
2026-06-09T09:52:59.0545389Z           "complete": false,
2026-06-09T09:52:59.0545481Z           "evidence": []
2026-06-09T09:52:59.0545557Z         },
2026-06-09T09:52:59.0545647Z         "unit": {
2026-06-09T09:52:59.0545753Z           "complete": true,
2026-06-09T09:52:59.0545848Z           "evidence": [
2026-06-09T09:52:59.0545938Z             {
2026-06-09T09:52:59.0546072Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0546172Z               "line": 817
2026-06-09T09:52:59.0546253Z             },
2026-06-09T09:52:59.0546343Z             {
2026-06-09T09:52:59.0546468Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0546567Z               "line": 181
2026-06-09T09:52:59.0546654Z             }
2026-06-09T09:52:59.0546736Z           ]
2026-06-09T09:52:59.0546825Z         }
2026-06-09T09:52:59.0546905Z       }
2026-06-09T09:52:59.0547005Z     },
2026-06-09T09:52:59.0547091Z     {
2026-06-09T09:52:59.0547208Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-09T09:52:59.0547389Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-09T09:52:59.0547485Z       "requiredStages": [
2026-06-09T09:52:59.0547570Z         "impl",
2026-06-09T09:52:59.0547651Z         "unit"
2026-06-09T09:52:59.0547738Z       ],
2026-06-09T09:52:59.0547823Z       "stages": {
2026-06-09T09:52:59.0547923Z         "doc": {
2026-06-09T09:52:59.0548043Z           "complete": false,
2026-06-09T09:52:59.0548138Z           "evidence": []
2026-06-09T09:52:59.0548228Z         },
2026-06-09T09:52:59.0548320Z         "impl": {
2026-06-09T09:52:59.0548419Z           "complete": true,
2026-06-09T09:52:59.0548509Z           "evidence": [
2026-06-09T09:52:59.0548605Z             {
2026-06-09T09:52:59.0548733Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0548824Z               "line": 20
2026-06-09T09:52:59.0549039Z             },
2026-06-09T09:52:59.0549134Z             {
2026-06-09T09:52:59.0549278Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0549377Z               "line": 100
2026-06-09T09:52:59.0549487Z             },
2026-06-09T09:52:59.0549598Z             {
2026-06-09T09:52:59.0549749Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T09:52:59.0549872Z               "line": 68
2026-06-09T09:52:59.0549968Z             },
2026-06-09T09:52:59.0550075Z             {
2026-06-09T09:52:59.0550199Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T09:52:59.0550290Z               "line": 80
2026-06-09T09:52:59.0550390Z             }
2026-06-09T09:52:59.0550470Z           ]
2026-06-09T09:52:59.0550562Z         },
2026-06-09T09:52:59.0550648Z         "int": {
2026-06-09T09:52:59.0550742Z           "complete": false,
2026-06-09T09:52:59.0550838Z           "evidence": []
2026-06-09T09:52:59.0550924Z         },
2026-06-09T09:52:59.0551015Z         "unit": {
2026-06-09T09:52:59.0551324Z           "complete": true,
2026-06-09T09:52:59.0551420Z           "evidence": [
2026-06-09T09:52:59.0551501Z             {
2026-06-09T09:52:59.0551625Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0551715Z               "line": 152
2026-06-09T09:52:59.0551807Z             },
2026-06-09T09:52:59.0551996Z             {
2026-06-09T09:52:59.0552112Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0552203Z               "line": 175
2026-06-09T09:52:59.0552278Z             },
2026-06-09T09:52:59.0552367Z             {
2026-06-09T09:52:59.0552492Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0552618Z               "line": 186
2026-06-09T09:52:59.0552708Z             },
2026-06-09T09:52:59.0552790Z             {
2026-06-09T09:52:59.0552915Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0552999Z               "line": 202
2026-06-09T09:52:59.0553099Z             },
2026-06-09T09:52:59.0553210Z             {
2026-06-09T09:52:59.0553323Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-09T09:52:59.0553429Z               "line": 216
2026-06-09T09:52:59.0553520Z             },
2026-06-09T09:52:59.0553629Z             {
2026-06-09T09:52:59.0553754Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-09T09:52:59.0553877Z               "line": 137
2026-06-09T09:52:59.0553981Z             }
2026-06-09T09:52:59.0554073Z           ]
2026-06-09T09:52:59.0554173Z         }
2026-06-09T09:52:59.0554259Z       }
2026-06-09T09:52:59.0554349Z     },
2026-06-09T09:52:59.0554426Z     {
2026-06-09T09:52:59.0554539Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-09T09:52:59.0554807Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-09T09:52:59.0554902Z       "requiredStages": [
2026-06-09T09:52:59.0554993Z         "impl",
2026-06-09T09:52:59.0555079Z         "unit"
2026-06-09T09:52:59.0555173Z       ],
2026-06-09T09:52:59.0555258Z       "stages": {
2026-06-09T09:52:59.0555349Z         "doc": {
2026-06-09T09:52:59.0555445Z           "complete": true,
2026-06-09T09:52:59.0555535Z           "evidence": [
2026-06-09T09:52:59.0555621Z             {
2026-06-09T09:52:59.0555732Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0555836Z               "line": 132
2026-06-09T09:52:59.0555921Z             }
2026-06-09T09:52:59.0556008Z           ]
2026-06-09T09:52:59.0556098Z         },
2026-06-09T09:52:59.0556184Z         "impl": {
2026-06-09T09:52:59.0556279Z           "complete": true,
2026-06-09T09:52:59.0556366Z           "evidence": [
2026-06-09T09:52:59.0556455Z             {
2026-06-09T09:52:59.0556570Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.0556666Z               "line": 65
2026-06-09T09:52:59.0556756Z             },
2026-06-09T09:52:59.0556832Z             {
2026-06-09T09:52:59.0556962Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0557089Z               "line": 17
2026-06-09T09:52:59.0557184Z             },
2026-06-09T09:52:59.0557267Z             {
2026-06-09T09:52:59.0557390Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0557489Z               "line": 217
2026-06-09T09:52:59.0557575Z             },
2026-06-09T09:52:59.0557684Z             {
2026-06-09T09:52:59.0557806Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0557907Z               "line": 317
2026-06-09T09:52:59.0557997Z             },
2026-06-09T09:52:59.0558102Z             {
2026-06-09T09:52:59.0558240Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0558336Z               "line": 32
2026-06-09T09:52:59.0558435Z             },
2026-06-09T09:52:59.0558526Z             {
2026-06-09T09:52:59.0558655Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0558750Z               "line": 4360
2026-06-09T09:52:59.0558831Z             },
2026-06-09T09:52:59.0558918Z             {
2026-06-09T09:52:59.0559209Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0559298Z               "line": 4628
2026-06-09T09:52:59.0559375Z             }
2026-06-09T09:52:59.0559460Z           ]
2026-06-09T09:52:59.0559562Z         },
2026-06-09T09:52:59.0559680Z         "int": {
2026-06-09T09:52:59.0559780Z           "complete": false,
2026-06-09T09:52:59.0559970Z           "evidence": []
2026-06-09T09:52:59.0560066Z         },
2026-06-09T09:52:59.0560148Z         "unit": {
2026-06-09T09:52:59.0560253Z           "complete": true,
2026-06-09T09:52:59.0560337Z           "evidence": [
2026-06-09T09:52:59.0560427Z             {
2026-06-09T09:52:59.0560551Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0560640Z               "line": 94
2026-06-09T09:52:59.0560730Z             },
2026-06-09T09:52:59.0560812Z             {
2026-06-09T09:52:59.0560926Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0561016Z               "line": 111
2026-06-09T09:52:59.0561112Z             },
2026-06-09T09:52:59.0561194Z             {
2026-06-09T09:52:59.0561293Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0561383Z               "line": 124
2026-06-09T09:52:59.0561461Z             },
2026-06-09T09:52:59.0561561Z             {
2026-06-09T09:52:59.0561679Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0561785Z               "line": 134
2026-06-09T09:52:59.0561880Z             },
2026-06-09T09:52:59.0561965Z             {
2026-06-09T09:52:59.0562086Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0562180Z               "line": 144
2026-06-09T09:52:59.0562285Z             },
2026-06-09T09:52:59.0562372Z             {
2026-06-09T09:52:59.0562500Z               "path": "crates/spt-proto/src/id.rs",
2026-06-09T09:52:59.0562609Z               "line": 156
2026-06-09T09:52:59.0562696Z             },
2026-06-09T09:52:59.0562796Z             {
2026-06-09T09:52:59.0562937Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0563061Z               "line": 714
2026-06-09T09:52:59.0563155Z             }
2026-06-09T09:52:59.0563263Z           ]
2026-06-09T09:52:59.0563359Z         }
2026-06-09T09:52:59.0563441Z       }
2026-06-09T09:52:59.0563531Z     },
2026-06-09T09:52:59.0563611Z     {
2026-06-09T09:52:59.0563732Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-09T09:52:59.0563874Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-09T09:52:59.0563974Z       "requiredStages": [
2026-06-09T09:52:59.0564065Z         "impl",
2026-06-09T09:52:59.0564146Z         "unit"
2026-06-09T09:52:59.0564236Z       ],
2026-06-09T09:52:59.0564324Z       "stages": {
2026-06-09T09:52:59.0564413Z         "doc": {
2026-06-09T09:52:59.0564504Z           "complete": false,
2026-06-09T09:52:59.0564604Z           "evidence": []
2026-06-09T09:52:59.0564695Z         },
2026-06-09T09:52:59.0564780Z         "impl": {
2026-06-09T09:52:59.0564875Z           "complete": true,
2026-06-09T09:52:59.0564972Z           "evidence": [
2026-06-09T09:52:59.0565071Z             {
2026-06-09T09:52:59.0565219Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.0565334Z               "line": 128
2026-06-09T09:52:59.0565424Z             }
2026-06-09T09:52:59.0565505Z           ]
2026-06-09T09:52:59.0565597Z         },
2026-06-09T09:52:59.0565687Z         "int": {
2026-06-09T09:52:59.0565785Z           "complete": false,
2026-06-09T09:52:59.0565875Z           "evidence": []
2026-06-09T09:52:59.0565962Z         },
2026-06-09T09:52:59.0566076Z         "unit": {
2026-06-09T09:52:59.0566171Z           "complete": true,
2026-06-09T09:52:59.0566267Z           "evidence": [
2026-06-09T09:52:59.0566348Z             {
2026-06-09T09:52:59.0566462Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.0566549Z               "line": 205
2026-06-09T09:52:59.0566644Z             }
2026-06-09T09:52:59.0566720Z           ]
2026-06-09T09:52:59.0566800Z         }
2026-06-09T09:52:59.0567082Z       }
2026-06-09T09:52:59.0567178Z     },
2026-06-09T09:52:59.0567279Z     {
2026-06-09T09:52:59.0567416Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-09T09:52:59.0567603Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-09T09:52:59.0567717Z       "requiredStages": [
2026-06-09T09:52:59.0567903Z         "impl",
2026-06-09T09:52:59.0568016Z         "unit"
2026-06-09T09:52:59.0568110Z       ],
2026-06-09T09:52:59.0568216Z       "stages": {
2026-06-09T09:52:59.0568309Z         "doc": {
2026-06-09T09:52:59.0568399Z           "complete": false,
2026-06-09T09:52:59.0568509Z           "evidence": []
2026-06-09T09:52:59.0568592Z         },
2026-06-09T09:52:59.0568685Z         "impl": {
2026-06-09T09:52:59.0568776Z           "complete": true,
2026-06-09T09:52:59.0568872Z           "evidence": [
2026-06-09T09:52:59.0569043Z             {
2026-06-09T09:52:59.0569168Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0569268Z               "line": 246
2026-06-09T09:52:59.0569362Z             },
2026-06-09T09:52:59.0569449Z             {
2026-06-09T09:52:59.0569558Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0569648Z               "line": 257
2026-06-09T09:52:59.0569735Z             },
2026-06-09T09:52:59.0569826Z             {
2026-06-09T09:52:59.0569944Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0570035Z               "line": 275
2026-06-09T09:52:59.0570122Z             }
2026-06-09T09:52:59.0570206Z           ]
2026-06-09T09:52:59.0570292Z         },
2026-06-09T09:52:59.0570384Z         "int": {
2026-06-09T09:52:59.0570479Z           "complete": false,
2026-06-09T09:52:59.0570569Z           "evidence": []
2026-06-09T09:52:59.0570646Z         },
2026-06-09T09:52:59.0570737Z         "unit": {
2026-06-09T09:52:59.0570827Z           "complete": true,
2026-06-09T09:52:59.0570921Z           "evidence": [
2026-06-09T09:52:59.0571012Z             {
2026-06-09T09:52:59.0571167Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0571281Z               "line": 299
2026-06-09T09:52:59.0571367Z             },
2026-06-09T09:52:59.0571482Z             {
2026-06-09T09:52:59.0571591Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0571697Z               "line": 320
2026-06-09T09:52:59.0571792Z             },
2026-06-09T09:52:59.0571891Z             {
2026-06-09T09:52:59.0572021Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0572116Z               "line": 547
2026-06-09T09:52:59.0572220Z             },
2026-06-09T09:52:59.0572311Z             {
2026-06-09T09:52:59.0572435Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0572535Z               "line": 558
2026-06-09T09:52:59.0572641Z             },
2026-06-09T09:52:59.0572745Z             {
2026-06-09T09:52:59.0572854Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0572951Z               "line": 571
2026-06-09T09:52:59.0573041Z             }
2026-06-09T09:52:59.0573126Z           ]
2026-06-09T09:52:59.0573208Z         }
2026-06-09T09:52:59.0573295Z       }
2026-06-09T09:52:59.0573384Z     },
2026-06-09T09:52:59.0573464Z     {
2026-06-09T09:52:59.0573578Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-09T09:52:59.0574210Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-09T09:52:59.0574330Z       "requiredStages": [
2026-06-09T09:52:59.0574424Z         "impl",
2026-06-09T09:52:59.0574510Z         "unit"
2026-06-09T09:52:59.0574597Z       ],
2026-06-09T09:52:59.0574683Z       "stages": {
2026-06-09T09:52:59.0574768Z         "doc": {
2026-06-09T09:52:59.0574859Z           "complete": false,
2026-06-09T09:52:59.0574949Z           "evidence": []
2026-06-09T09:52:59.0575035Z         },
2026-06-09T09:52:59.0575116Z         "impl": {
2026-06-09T09:52:59.0575331Z           "complete": true,
2026-06-09T09:52:59.0575407Z           "evidence": [
2026-06-09T09:52:59.0575503Z             {
2026-06-09T09:52:59.0575650Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0575741Z               "line": 714
2026-06-09T09:52:59.0575833Z             }
2026-06-09T09:52:59.0576007Z           ]
2026-06-09T09:52:59.0576094Z         },
2026-06-09T09:52:59.0576176Z         "int": {
2026-06-09T09:52:59.0576270Z           "complete": false,
2026-06-09T09:52:59.0576355Z           "evidence": []
2026-06-09T09:52:59.0576440Z         },
2026-06-09T09:52:59.0576527Z         "unit": {
2026-06-09T09:52:59.0576618Z           "complete": true,
2026-06-09T09:52:59.0576707Z           "evidence": [
2026-06-09T09:52:59.0576789Z             {
2026-06-09T09:52:59.0576913Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0576999Z               "line": 828
2026-06-09T09:52:59.0577089Z             }
2026-06-09T09:52:59.0577171Z           ]
2026-06-09T09:52:59.0577262Z         }
2026-06-09T09:52:59.0577341Z       }
2026-06-09T09:52:59.0577423Z     },
2026-06-09T09:52:59.0577509Z     {
2026-06-09T09:52:59.0577614Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-09T09:52:59.0577829Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-09T09:52:59.0577924Z       "requiredStages": [
2026-06-09T09:52:59.0577999Z         "impl",
2026-06-09T09:52:59.0578087Z         "unit"
2026-06-09T09:52:59.0578163Z       ],
2026-06-09T09:52:59.0578247Z       "stages": {
2026-06-09T09:52:59.0578324Z         "doc": {
2026-06-09T09:52:59.0578416Z           "complete": false,
2026-06-09T09:52:59.0578505Z           "evidence": []
2026-06-09T09:52:59.0578590Z         },
2026-06-09T09:52:59.0578680Z         "impl": {
2026-06-09T09:52:59.0578776Z           "complete": true,
2026-06-09T09:52:59.0578870Z           "evidence": [
2026-06-09T09:52:59.0579041Z             {
2026-06-09T09:52:59.0579152Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0579269Z               "line": 14
2026-06-09T09:52:59.0579351Z             },
2026-06-09T09:52:59.0579442Z             {
2026-06-09T09:52:59.0579546Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:59.0579636Z               "line": 411
2026-06-09T09:52:59.0579719Z             }
2026-06-09T09:52:59.0579809Z           ]
2026-06-09T09:52:59.0579898Z         },
2026-06-09T09:52:59.0579981Z         "int": {
2026-06-09T09:52:59.0580076Z           "complete": false,
2026-06-09T09:52:59.0580166Z           "evidence": []
2026-06-09T09:52:59.0580252Z         },
2026-06-09T09:52:59.0580329Z         "unit": {
2026-06-09T09:52:59.0580428Z           "complete": true,
2026-06-09T09:52:59.0580519Z           "evidence": [
2026-06-09T09:52:59.0580600Z             {
2026-06-09T09:52:59.0580706Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0580795Z               "line": 130
2026-06-09T09:52:59.0580876Z             },
2026-06-09T09:52:59.0580973Z             {
2026-06-09T09:52:59.0581086Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0581177Z               "line": 138
2026-06-09T09:52:59.0581254Z             },
2026-06-09T09:52:59.0581341Z             {
2026-06-09T09:52:59.0581443Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0581547Z               "line": 146
2026-06-09T09:52:59.0581634Z             },
2026-06-09T09:52:59.0581723Z             {
2026-06-09T09:52:59.0581831Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0581917Z               "line": 154
2026-06-09T09:52:59.0582009Z             },
2026-06-09T09:52:59.0582084Z             {
2026-06-09T09:52:59.0582193Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0582281Z               "line": 162
2026-06-09T09:52:59.0582362Z             },
2026-06-09T09:52:59.0582446Z             {
2026-06-09T09:52:59.0582547Z               "path": "crates/spt/src/api/auth.rs",
2026-06-09T09:52:59.0582751Z               "line": 170
2026-06-09T09:52:59.0582833Z             }
2026-06-09T09:52:59.0582920Z           ]
2026-06-09T09:52:59.0583004Z         }
2026-06-09T09:52:59.0583085Z       }
2026-06-09T09:52:59.0583177Z     },
2026-06-09T09:52:59.0583258Z     {
2026-06-09T09:52:59.0583372Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-09T09:52:59.0584585Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-09T09:52:59.0584699Z       "requiredStages": [
2026-06-09T09:52:59.0584789Z         "impl",
2026-06-09T09:52:59.0584871Z         "unit"
2026-06-09T09:52:59.0584956Z       ],
2026-06-09T09:52:59.0585037Z       "stages": {
2026-06-09T09:52:59.0585124Z         "doc": {
2026-06-09T09:52:59.0585219Z           "complete": false,
2026-06-09T09:52:59.0585309Z           "evidence": []
2026-06-09T09:52:59.0585414Z         },
2026-06-09T09:52:59.0585496Z         "impl": {
2026-06-09T09:52:59.0585590Z           "complete": true,
2026-06-09T09:52:59.0585667Z           "evidence": [
2026-06-09T09:52:59.0585763Z             {
2026-06-09T09:52:59.0585905Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0586005Z               "line": 34
2026-06-09T09:52:59.0586092Z             }
2026-06-09T09:52:59.0586186Z           ]
2026-06-09T09:52:59.0586286Z         },
2026-06-09T09:52:59.0586369Z         "int": {
2026-06-09T09:52:59.0586464Z           "complete": false,
2026-06-09T09:52:59.0586544Z           "evidence": []
2026-06-09T09:52:59.0586630Z         },
2026-06-09T09:52:59.0586722Z         "unit": {
2026-06-09T09:52:59.0586811Z           "complete": true,
2026-06-09T09:52:59.0586906Z           "evidence": [
2026-06-09T09:52:59.0586986Z             {
2026-06-09T09:52:59.0587121Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0587220Z               "line": 188
2026-06-09T09:52:59.0587311Z             },
2026-06-09T09:52:59.0587397Z             {
2026-06-09T09:52:59.0587525Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0587615Z               "line": 200
2026-06-09T09:52:59.0587698Z             },
2026-06-09T09:52:59.0587793Z             {
2026-06-09T09:52:59.0587920Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0588008Z               "line": 211
2026-06-09T09:52:59.0588093Z             },
2026-06-09T09:52:59.0588174Z             {
2026-06-09T09:52:59.0588308Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0588399Z               "line": 253
2026-06-09T09:52:59.0588484Z             },
2026-06-09T09:52:59.0588569Z             {
2026-06-09T09:52:59.0588694Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0588784Z               "line": 277
2026-06-09T09:52:59.0588879Z             },
2026-06-09T09:52:59.0589037Z             {
2026-06-09T09:52:59.0589169Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0589260Z               "line": 300
2026-06-09T09:52:59.0589369Z             },
2026-06-09T09:52:59.0589458Z             {
2026-06-09T09:52:59.0589606Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-09T09:52:59.0589692Z               "line": 316
2026-06-09T09:52:59.0589778Z             }
2026-06-09T09:52:59.0589858Z           ]
2026-06-09T09:52:59.0589944Z         }
2026-06-09T09:52:59.0590030Z       }
2026-06-09T09:52:59.0590111Z     },
2026-06-09T09:52:59.0590192Z     {
2026-06-09T09:52:59.0590308Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-09T09:52:59.0590831Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-09T09:52:59.0591041Z       "requiredStages": [
2026-06-09T09:52:59.0591126Z         "impl",
2026-06-09T09:52:59.0591213Z         "unit"
2026-06-09T09:52:59.0591294Z       ],
2026-06-09T09:52:59.0591385Z       "stages": {
2026-06-09T09:52:59.0591466Z         "doc": {
2026-06-09T09:52:59.0591562Z           "complete": false,
2026-06-09T09:52:59.0591781Z           "evidence": []
2026-06-09T09:52:59.0591877Z         },
2026-06-09T09:52:59.0591966Z         "impl": {
2026-06-09T09:52:59.0592056Z           "complete": true,
2026-06-09T09:52:59.0592141Z           "evidence": [
2026-06-09T09:52:59.0592218Z             {
2026-06-09T09:52:59.0592344Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0592429Z               "line": 29
2026-06-09T09:52:59.0592511Z             },
2026-06-09T09:52:59.0592598Z             {
2026-06-09T09:52:59.0592706Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0592797Z               "line": 174
2026-06-09T09:52:59.0592883Z             },
2026-06-09T09:52:59.0592973Z             {
2026-06-09T09:52:59.0593088Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0593175Z               "line": 194
2026-06-09T09:52:59.0593261Z             },
2026-06-09T09:52:59.0593340Z             {
2026-06-09T09:52:59.0593456Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0593555Z               "line": 222
2026-06-09T09:52:59.0593636Z             }
2026-06-09T09:52:59.0593727Z           ]
2026-06-09T09:52:59.0593804Z         },
2026-06-09T09:52:59.0593898Z         "int": {
2026-06-09T09:52:59.0593984Z           "complete": false,
2026-06-09T09:52:59.0594076Z           "evidence": []
2026-06-09T09:52:59.0594162Z         },
2026-06-09T09:52:59.0594246Z         "unit": {
2026-06-09T09:52:59.0594342Z           "complete": true,
2026-06-09T09:52:59.0594429Z           "evidence": [
2026-06-09T09:52:59.0594518Z             {
2026-06-09T09:52:59.0594622Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0594722Z               "line": 329
2026-06-09T09:52:59.0594808Z             },
2026-06-09T09:52:59.0594892Z             {
2026-06-09T09:52:59.0595006Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0595092Z               "line": 344
2026-06-09T09:52:59.0595178Z             },
2026-06-09T09:52:59.0595263Z             {
2026-06-09T09:52:59.0595379Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0595469Z               "line": 417
2026-06-09T09:52:59.0595554Z             },
2026-06-09T09:52:59.0595640Z             {
2026-06-09T09:52:59.0595746Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0595841Z               "line": 433
2026-06-09T09:52:59.0595926Z             },
2026-06-09T09:52:59.0596013Z             {
2026-06-09T09:52:59.0596122Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0596217Z               "line": 492
2026-06-09T09:52:59.0596304Z             },
2026-06-09T09:52:59.0596389Z             {
2026-06-09T09:52:59.0596503Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0596594Z               "line": 506
2026-06-09T09:52:59.0596681Z             },
2026-06-09T09:52:59.0596761Z             {
2026-06-09T09:52:59.0596871Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0596977Z               "line": 517
2026-06-09T09:52:59.0597056Z             },
2026-06-09T09:52:59.0597142Z             {
2026-06-09T09:52:59.0597253Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0597344Z               "line": 528
2026-06-09T09:52:59.0597427Z             }
2026-06-09T09:52:59.0597517Z           ]
2026-06-09T09:52:59.0597604Z         }
2026-06-09T09:52:59.0597681Z       }
2026-06-09T09:52:59.0597766Z     },
2026-06-09T09:52:59.0597846Z     {
2026-06-09T09:52:59.0597981Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-09T09:52:59.0598663Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-09T09:52:59.0598858Z       "requiredStages": [
2026-06-09T09:52:59.0599029Z         "impl",
2026-06-09T09:52:59.0599111Z         "unit"
2026-06-09T09:52:59.0599349Z       ],
2026-06-09T09:52:59.0599430Z       "stages": {
2026-06-09T09:52:59.0599517Z         "doc": {
2026-06-09T09:52:59.0599612Z           "complete": false,
2026-06-09T09:52:59.0599701Z           "evidence": []
2026-06-09T09:52:59.0599786Z         },
2026-06-09T09:52:59.0599868Z         "impl": {
2026-06-09T09:52:59.0599957Z           "complete": true,
2026-06-09T09:52:59.0600046Z           "evidence": [
2026-06-09T09:52:59.0600132Z             {
2026-06-09T09:52:59.0600267Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0600352Z               "line": 27
2026-06-09T09:52:59.0600438Z             },
2026-06-09T09:52:59.0600514Z             {
2026-06-09T09:52:59.0600662Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0600747Z               "line": 110
2026-06-09T09:52:59.0600834Z             },
2026-06-09T09:52:59.0600919Z             {
2026-06-09T09:52:59.0601047Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0601149Z               "line": 153
2026-06-09T09:52:59.0601234Z             },
2026-06-09T09:52:59.0601324Z             {
2026-06-09T09:52:59.0601445Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0601539Z               "line": 182
2026-06-09T09:52:59.0601630Z             },
2026-06-09T09:52:59.0601716Z             {
2026-06-09T09:52:59.0601863Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0601954Z               "line": 31
2026-06-09T09:52:59.0602040Z             },
2026-06-09T09:52:59.0602122Z             {
2026-06-09T09:52:59.0602264Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0602365Z               "line": 113
2026-06-09T09:52:59.0602446Z             },
2026-06-09T09:52:59.0602531Z             {
2026-06-09T09:52:59.0602668Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0602758Z               "line": 138
2026-06-09T09:52:59.0602852Z             }
2026-06-09T09:52:59.0602937Z           ]
2026-06-09T09:52:59.0603028Z         },
2026-06-09T09:52:59.0603110Z         "int": {
2026-06-09T09:52:59.0603205Z           "complete": false,
2026-06-09T09:52:59.0603295Z           "evidence": []
2026-06-09T09:52:59.0603382Z         },
2026-06-09T09:52:59.0603462Z         "unit": {
2026-06-09T09:52:59.0603557Z           "complete": true,
2026-06-09T09:52:59.0603653Z           "evidence": [
2026-06-09T09:52:59.0603735Z             {
2026-06-09T09:52:59.0603863Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0603953Z               "line": 261
2026-06-09T09:52:59.0604049Z             },
2026-06-09T09:52:59.0604129Z             {
2026-06-09T09:52:59.0604259Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0604350Z               "line": 276
2026-06-09T09:52:59.0604435Z             },
2026-06-09T09:52:59.0604520Z             {
2026-06-09T09:52:59.0604645Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0604750Z               "line": 293
2026-06-09T09:52:59.0604835Z             },
2026-06-09T09:52:59.0604917Z             {
2026-06-09T09:52:59.0605046Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0605130Z               "line": 310
2026-06-09T09:52:59.0605224Z             },
2026-06-09T09:52:59.0605306Z             {
2026-06-09T09:52:59.0605433Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0605523Z               "line": 327
2026-06-09T09:52:59.0605604Z             },
2026-06-09T09:52:59.0609337Z             {
2026-06-09T09:52:59.0609661Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.0609763Z               "line": 366
2026-06-09T09:52:59.0609848Z             },
2026-06-09T09:52:59.0609937Z             {
2026-06-09T09:52:59.0610097Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0610275Z               "line": 179
2026-06-09T09:52:59.0610366Z             },
2026-06-09T09:52:59.0610447Z             {
2026-06-09T09:52:59.0610593Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0610678Z               "line": 194
2026-06-09T09:52:59.0610764Z             },
2026-06-09T09:52:59.0610851Z             {
2026-06-09T09:52:59.0610983Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0611079Z               "line": 204
2026-06-09T09:52:59.0611160Z             },
2026-06-09T09:52:59.0611246Z             {
2026-06-09T09:52:59.0611380Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0611484Z               "line": 259
2026-06-09T09:52:59.0611575Z             },
2026-06-09T09:52:59.0611656Z             {
2026-06-09T09:52:59.0611795Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0611880Z               "line": 269
2026-06-09T09:52:59.0611971Z             },
2026-06-09T09:52:59.0612047Z             {
2026-06-09T09:52:59.0612180Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.0612271Z               "line": 283
2026-06-09T09:52:59.0612353Z             }
2026-06-09T09:52:59.0612433Z           ]
2026-06-09T09:52:59.0612514Z         }
2026-06-09T09:52:59.0612596Z       }
2026-06-09T09:52:59.0612663Z     },
2026-06-09T09:52:59.0612752Z     {
2026-06-09T09:52:59.0612876Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-09T09:52:59.0613072Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-09T09:52:59.0613176Z       "requiredStages": [],
2026-06-09T09:52:59.0613271Z       "stages": {
2026-06-09T09:52:59.0613366Z         "doc": {
2026-06-09T09:52:59.0613464Z           "complete": false,
2026-06-09T09:52:59.0613550Z           "evidence": []
2026-06-09T09:52:59.0613636Z         },
2026-06-09T09:52:59.0613718Z         "impl": {
2026-06-09T09:52:59.0613816Z           "complete": false,
2026-06-09T09:52:59.0613913Z           "evidence": []
2026-06-09T09:52:59.0613999Z         },
2026-06-09T09:52:59.0614080Z         "int": {
2026-06-09T09:52:59.0614179Z           "complete": false,
2026-06-09T09:52:59.0614266Z           "evidence": []
2026-06-09T09:52:59.0614347Z         },
2026-06-09T09:52:59.0614432Z         "unit": {
2026-06-09T09:52:59.0614518Z           "complete": false,
2026-06-09T09:52:59.0614614Z           "evidence": []
2026-06-09T09:52:59.0614694Z         }
2026-06-09T09:52:59.0614780Z       }
2026-06-09T09:52:59.0614862Z     },
2026-06-09T09:52:59.0614943Z     {
2026-06-09T09:52:59.0615081Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-09T09:52:59.0616003Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-09T09:52:59.0616107Z       "requiredStages": [
2026-06-09T09:52:59.0616218Z         "impl",
2026-06-09T09:52:59.0616299Z         "unit"
2026-06-09T09:52:59.0616393Z       ],
2026-06-09T09:52:59.0616475Z       "stages": {
2026-06-09T09:52:59.0616565Z         "doc": {
2026-06-09T09:52:59.0616656Z           "complete": false,
2026-06-09T09:52:59.0616751Z           "evidence": []
2026-06-09T09:52:59.0616838Z         },
2026-06-09T09:52:59.0616918Z         "impl": {
2026-06-09T09:52:59.0617013Z           "complete": true,
2026-06-09T09:52:59.0617100Z           "evidence": [
2026-06-09T09:52:59.0617190Z             {
2026-06-09T09:52:59.0617318Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0617505Z               "line": 26
2026-06-09T09:52:59.0617591Z             },
2026-06-09T09:52:59.0617676Z             {
2026-06-09T09:52:59.0617801Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0617885Z               "line": 95
2026-06-09T09:52:59.0617976Z             },
2026-06-09T09:52:59.0618140Z             {
2026-06-09T09:52:59.0618253Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0618349Z               "line": 166
2026-06-09T09:52:59.0618431Z             },
2026-06-09T09:52:59.0618515Z             {
2026-06-09T09:52:59.0618633Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0618729Z               "line": 19
2026-06-09T09:52:59.0618821Z             },
2026-06-09T09:52:59.0618910Z             {
2026-06-09T09:52:59.0619111Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0619191Z               "line": 50
2026-06-09T09:52:59.0619282Z             },
2026-06-09T09:52:59.0619388Z             {
2026-06-09T09:52:59.0619516Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T09:52:59.0619606Z               "line": 18
2026-06-09T09:52:59.0619688Z             },
2026-06-09T09:52:59.0619778Z             {
2026-06-09T09:52:59.0619882Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T09:52:59.0619993Z               "line": 71
2026-06-09T09:52:59.0620074Z             },
2026-06-09T09:52:59.0620164Z             {
2026-06-09T09:52:59.0620284Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0620370Z               "line": 70
2026-06-09T09:52:59.0620454Z             }
2026-06-09T09:52:59.0620531Z           ]
2026-06-09T09:52:59.0620618Z         },
2026-06-09T09:52:59.0620704Z         "int": {
2026-06-09T09:52:59.0620803Z           "complete": false,
2026-06-09T09:52:59.0620883Z           "evidence": []
2026-06-09T09:52:59.0620959Z         },
2026-06-09T09:52:59.0621044Z         "unit": {
2026-06-09T09:52:59.0621134Z           "complete": true,
2026-06-09T09:52:59.0621233Z           "evidence": [
2026-06-09T09:52:59.0621315Z             {
2026-06-09T09:52:59.0621434Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0621528Z               "line": 289
2026-06-09T09:52:59.0621611Z             },
2026-06-09T09:52:59.0621697Z             {
2026-06-09T09:52:59.0621825Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0621916Z               "line": 308
2026-06-09T09:52:59.0621997Z             },
2026-06-09T09:52:59.0622087Z             {
2026-06-09T09:52:59.0622207Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0622297Z               "line": 336
2026-06-09T09:52:59.0622383Z             },
2026-06-09T09:52:59.0622464Z             {
2026-06-09T09:52:59.0622589Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0622674Z               "line": 399
2026-06-09T09:52:59.0622764Z             },
2026-06-09T09:52:59.0622851Z             {
2026-06-09T09:52:59.0622979Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0623070Z               "line": 410
2026-06-09T09:52:59.0623156Z             },
2026-06-09T09:52:59.0623242Z             {
2026-06-09T09:52:59.0623355Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0623456Z               "line": 441
2026-06-09T09:52:59.0623543Z             },
2026-06-09T09:52:59.0623627Z             {
2026-06-09T09:52:59.0623745Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.0623836Z               "line": 452
2026-06-09T09:52:59.0623921Z             },
2026-06-09T09:52:59.0624010Z             {
2026-06-09T09:52:59.0624124Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0624216Z               "line": 77
2026-06-09T09:52:59.0624301Z             },
2026-06-09T09:52:59.0624386Z             {
2026-06-09T09:52:59.0624497Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0624701Z               "line": 97
2026-06-09T09:52:59.0624788Z             },
2026-06-09T09:52:59.0624869Z             {
2026-06-09T09:52:59.0624992Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0625083Z               "line": 112
2026-06-09T09:52:59.0625174Z             },
2026-06-09T09:52:59.0625254Z             {
2026-06-09T09:52:59.0625494Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0625588Z               "line": 123
2026-06-09T09:52:59.0625669Z             },
2026-06-09T09:52:59.0625762Z             {
2026-06-09T09:52:59.0625875Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0625965Z               "line": 130
2026-06-09T09:52:59.0626047Z             },
2026-06-09T09:52:59.0626133Z             {
2026-06-09T09:52:59.0626255Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-09T09:52:59.0626345Z               "line": 145
2026-06-09T09:52:59.0626436Z             },
2026-06-09T09:52:59.0626516Z             {
2026-06-09T09:52:59.0626643Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T09:52:59.0626730Z               "line": 115
2026-06-09T09:52:59.0626821Z             },
2026-06-09T09:52:59.0626910Z             {
2026-06-09T09:52:59.0627015Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T09:52:59.0627112Z               "line": 130
2026-06-09T09:52:59.0627207Z             },
2026-06-09T09:52:59.0627306Z             {
2026-06-09T09:52:59.0627421Z               "path": "crates/spt-proto/src/event.rs",
2026-06-09T09:52:59.0627512Z               "line": 336
2026-06-09T09:52:59.0627606Z             }
2026-06-09T09:52:59.0627684Z           ]
2026-06-09T09:52:59.0627769Z         }
2026-06-09T09:52:59.0627855Z       }
2026-06-09T09:52:59.0627941Z     },
2026-06-09T09:52:59.0628018Z     {
2026-06-09T09:52:59.0628136Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-09T09:52:59.0628394Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-09T09:52:59.0628494Z       "requiredStages": [
2026-06-09T09:52:59.0628585Z         "impl",
2026-06-09T09:52:59.0628667Z         "unit"
2026-06-09T09:52:59.0628751Z       ],
2026-06-09T09:52:59.0628837Z       "stages": {
2026-06-09T09:52:59.0628929Z         "doc": {
2026-06-09T09:52:59.0629127Z           "complete": true,
2026-06-09T09:52:59.0629226Z           "evidence": [
2026-06-09T09:52:59.0629313Z             {
2026-06-09T09:52:59.0629418Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0629513Z               "line": 138
2026-06-09T09:52:59.0629594Z             }
2026-06-09T09:52:59.0629680Z           ]
2026-06-09T09:52:59.0629770Z         },
2026-06-09T09:52:59.0629861Z         "impl": {
2026-06-09T09:52:59.0629958Z           "complete": true,
2026-06-09T09:52:59.0630043Z           "evidence": [
2026-06-09T09:52:59.0630132Z             {
2026-06-09T09:52:59.0630243Z               "path": "crates/spt-store/src/db.rs",
2026-06-09T09:52:59.0630343Z               "line": 29
2026-06-09T09:52:59.0630437Z             },
2026-06-09T09:52:59.0630519Z             {
2026-06-09T09:52:59.0630639Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.0630729Z               "line": 101
2026-06-09T09:52:59.0630815Z             },
2026-06-09T09:52:59.0630897Z             {
2026-06-09T09:52:59.0631034Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0631130Z               "line": 30
2026-06-09T09:52:59.0631212Z             },
2026-06-09T09:52:59.0631297Z             {
2026-06-09T09:52:59.0631415Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0631500Z               "line": 48
2026-06-09T09:52:59.0631577Z             }
2026-06-09T09:52:59.0631660Z           ]
2026-06-09T09:52:59.0631746Z         },
2026-06-09T09:52:59.0631836Z         "int": {
2026-06-09T09:52:59.0631938Z           "complete": false,
2026-06-09T09:52:59.0632023Z           "evidence": []
2026-06-09T09:52:59.0632113Z         },
2026-06-09T09:52:59.0632304Z         "unit": {
2026-06-09T09:52:59.0632399Z           "complete": true,
2026-06-09T09:52:59.0632491Z           "evidence": [
2026-06-09T09:52:59.0632576Z             {
2026-06-09T09:52:59.0632695Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0632786Z               "line": 162
2026-06-09T09:52:59.0632966Z             }
2026-06-09T09:52:59.0633052Z           ]
2026-06-09T09:52:59.0633139Z         }
2026-06-09T09:52:59.0633229Z       }
2026-06-09T09:52:59.0633310Z     },
2026-06-09T09:52:59.0633396Z     {
2026-06-09T09:52:59.0633511Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-09T09:52:59.0633920Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-09T09:52:59.0634021Z       "requiredStages": [
2026-06-09T09:52:59.0634103Z         "doc",
2026-06-09T09:52:59.0634192Z         "impl",
2026-06-09T09:52:59.0634277Z         "unit"
2026-06-09T09:52:59.0634363Z       ],
2026-06-09T09:52:59.0634472Z       "stages": {
2026-06-09T09:52:59.0634556Z         "doc": {
2026-06-09T09:52:59.0634646Z           "complete": true,
2026-06-09T09:52:59.0634742Z           "evidence": [
2026-06-09T09:52:59.0634833Z             {
2026-06-09T09:52:59.0634937Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0635043Z               "line": 150
2026-06-09T09:52:59.0635129Z             }
2026-06-09T09:52:59.0635214Z           ]
2026-06-09T09:52:59.0635299Z         },
2026-06-09T09:52:59.0635396Z         "impl": {
2026-06-09T09:52:59.0635491Z           "complete": true,
2026-06-09T09:52:59.0635576Z           "evidence": [
2026-06-09T09:52:59.0635667Z             {
2026-06-09T09:52:59.0635781Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0635877Z               "line": 22
2026-06-09T09:52:59.0635963Z             }
2026-06-09T09:52:59.0636044Z           ]
2026-06-09T09:52:59.0636130Z         },
2026-06-09T09:52:59.0636215Z         "int": {
2026-06-09T09:52:59.0636322Z           "complete": false,
2026-06-09T09:52:59.0636407Z           "evidence": []
2026-06-09T09:52:59.0636496Z         },
2026-06-09T09:52:59.0636583Z         "unit": {
2026-06-09T09:52:59.0636679Z           "complete": true,
2026-06-09T09:52:59.0636768Z           "evidence": [
2026-06-09T09:52:59.0636853Z             {
2026-06-09T09:52:59.0636982Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0637067Z               "line": 298
2026-06-09T09:52:59.0637156Z             }
2026-06-09T09:52:59.0637237Z           ]
2026-06-09T09:52:59.0637323Z         }
2026-06-09T09:52:59.0637414Z       }
2026-06-09T09:52:59.0637499Z     },
2026-06-09T09:52:59.0637590Z     {
2026-06-09T09:52:59.0637700Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-09T09:52:59.0638142Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-09T09:52:59.0638244Z       "requiredStages": [
2026-06-09T09:52:59.0638344Z         "impl",
2026-06-09T09:52:59.0638429Z         "unit"
2026-06-09T09:52:59.0638510Z       ],
2026-06-09T09:52:59.0638602Z       "stages": {
2026-06-09T09:52:59.0638686Z         "doc": {
2026-06-09T09:52:59.0638781Z           "complete": true,
2026-06-09T09:52:59.0638864Z           "evidence": [
2026-06-09T09:52:59.0639034Z             {
2026-06-09T09:52:59.0639145Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0639222Z               "line": 144
2026-06-09T09:52:59.0639302Z             }
2026-06-09T09:52:59.0639378Z           ]
2026-06-09T09:52:59.0639455Z         },
2026-06-09T09:52:59.0639536Z         "impl": {
2026-06-09T09:52:59.0639640Z           "complete": true,
2026-06-09T09:52:59.0639735Z           "evidence": [
2026-06-09T09:52:59.0639811Z             {
2026-06-09T09:52:59.0639936Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0640016Z               "line": 540
2026-06-09T09:52:59.0640097Z             },
2026-06-09T09:52:59.0640303Z             {
2026-06-09T09:52:59.0640421Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0640513Z               "line": 184
2026-06-09T09:52:59.0640598Z             },
2026-06-09T09:52:59.0640678Z             {
2026-06-09T09:52:59.0640794Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0640979Z               "line": 282
2026-06-09T09:52:59.0641070Z             },
2026-06-09T09:52:59.0641147Z             {
2026-06-09T09:52:59.0641265Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T09:52:59.0641356Z               "line": 15
2026-06-09T09:52:59.0641443Z             }
2026-06-09T09:52:59.0641523Z           ]
2026-06-09T09:52:59.0641613Z         },
2026-06-09T09:52:59.0641699Z         "int": {
2026-06-09T09:52:59.0641791Z           "complete": false,
2026-06-09T09:52:59.0641885Z           "evidence": []
2026-06-09T09:52:59.0641970Z         },
2026-06-09T09:52:59.0642065Z         "unit": {
2026-06-09T09:52:59.0642151Z           "complete": true,
2026-06-09T09:52:59.0642239Z           "evidence": [
2026-06-09T09:52:59.0642329Z             {
2026-06-09T09:52:59.0642459Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0642554Z               "line": 856
2026-06-09T09:52:59.0642635Z             },
2026-06-09T09:52:59.0642731Z             {
2026-06-09T09:52:59.0642864Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-09T09:52:59.0642959Z               "line": 88
2026-06-09T09:52:59.0643056Z             },
2026-06-09T09:52:59.0643141Z             {
2026-06-09T09:52:59.0643269Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0643356Z               "line": 802
2026-06-09T09:52:59.0643446Z             },
2026-06-09T09:52:59.0643531Z             {
2026-06-09T09:52:59.0643651Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0643742Z               "line": 821
2026-06-09T09:52:59.0643823Z             },
2026-06-09T09:52:59.0643923Z             {
2026-06-09T09:52:59.0644043Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0644141Z               "line": 278
2026-06-09T09:52:59.0644228Z             },
2026-06-09T09:52:59.0644319Z             {
2026-06-09T09:52:59.0644428Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T09:52:59.0644519Z               "line": 77
2026-06-09T09:52:59.0644610Z             },
2026-06-09T09:52:59.0644692Z             {
2026-06-09T09:52:59.0644813Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T09:52:59.0644903Z               "line": 94
2026-06-09T09:52:59.0644985Z             },
2026-06-09T09:52:59.0645069Z             {
2026-06-09T09:52:59.0645178Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-09T09:52:59.0645273Z               "line": 114
2026-06-09T09:52:59.0645355Z             }
2026-06-09T09:52:59.0645440Z           ]
2026-06-09T09:52:59.0645530Z         }
2026-06-09T09:52:59.0645613Z       }
2026-06-09T09:52:59.0645713Z     },
2026-06-09T09:52:59.0645793Z     {
2026-06-09T09:52:59.0645913Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-09T09:52:59.0647239Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-09T09:52:59.0647357Z       "requiredStages": [
2026-06-09T09:52:59.0647451Z         "doc",
2026-06-09T09:52:59.0647533Z         "impl",
2026-06-09T09:52:59.0647622Z         "unit"
2026-06-09T09:52:59.0647702Z       ],
2026-06-09T09:52:59.0647797Z       "stages": {
2026-06-09T09:52:59.0647888Z         "doc": {
2026-06-09T09:52:59.0647979Z           "complete": true,
2026-06-09T09:52:59.0648073Z           "evidence": [
2026-06-09T09:52:59.0648242Z             {
2026-06-09T09:52:59.0648355Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0648441Z               "line": 156
2026-06-09T09:52:59.0648527Z             }
2026-06-09T09:52:59.0648618Z           ]
2026-06-09T09:52:59.0648698Z         },
2026-06-09T09:52:59.0648870Z         "impl": {
2026-06-09T09:52:59.0649032Z           "complete": true,
2026-06-09T09:52:59.0649129Z           "evidence": [
2026-06-09T09:52:59.0649214Z             {
2026-06-09T09:52:59.0649342Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0649434Z               "line": 394
2026-06-09T09:52:59.0649519Z             },
2026-06-09T09:52:59.0649604Z             {
2026-06-09T09:52:59.0649729Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0649825Z               "line": 484
2026-06-09T09:52:59.0649909Z             },
2026-06-09T09:52:59.0649995Z             {
2026-06-09T09:52:59.0650120Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0650219Z               "line": 491
2026-06-09T09:52:59.0650309Z             },
2026-06-09T09:52:59.0650390Z             {
2026-06-09T09:52:59.0650515Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0650604Z               "line": 211
2026-06-09T09:52:59.0650710Z             }
2026-06-09T09:52:59.0650796Z           ]
2026-06-09T09:52:59.0650882Z         },
2026-06-09T09:52:59.0650971Z         "int": {
2026-06-09T09:52:59.0651063Z           "complete": false,
2026-06-09T09:52:59.0651158Z           "evidence": []
2026-06-09T09:52:59.0651239Z         },
2026-06-09T09:52:59.0651334Z         "unit": {
2026-06-09T09:52:59.0651430Z           "complete": true,
2026-06-09T09:52:59.0651516Z           "evidence": [
2026-06-09T09:52:59.0651601Z             {
2026-06-09T09:52:59.0651726Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0651825Z               "line": 1484
2026-06-09T09:52:59.0651916Z             },
2026-06-09T09:52:59.0652012Z             {
2026-06-09T09:52:59.0652139Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0652235Z               "line": 1542
2026-06-09T09:52:59.0652322Z             },
2026-06-09T09:52:59.0652403Z             {
2026-06-09T09:52:59.0652530Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0652621Z               "line": 834
2026-06-09T09:52:59.0652711Z             }
2026-06-09T09:52:59.0652799Z           ]
2026-06-09T09:52:59.0652880Z         }
2026-06-09T09:52:59.0652976Z       }
2026-06-09T09:52:59.0653058Z     },
2026-06-09T09:52:59.0653147Z     {
2026-06-09T09:52:59.0653262Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-09T09:52:59.0653457Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-09T09:52:59.0653562Z       "requiredStages": [
2026-06-09T09:52:59.0653645Z         "impl",
2026-06-09T09:52:59.0653735Z         "unit"
2026-06-09T09:52:59.0653829Z       ],
2026-06-09T09:52:59.0653916Z       "stages": {
2026-06-09T09:52:59.0654006Z         "doc": {
2026-06-09T09:52:59.0654106Z           "complete": false,
2026-06-09T09:52:59.0654196Z           "evidence": []
2026-06-09T09:52:59.0654279Z         },
2026-06-09T09:52:59.0654378Z         "impl": {
2026-06-09T09:52:59.0654473Z           "complete": true,
2026-06-09T09:52:59.0654570Z           "evidence": [
2026-06-09T09:52:59.0654654Z             {
2026-06-09T09:52:59.0654778Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T09:52:59.0654875Z               "line": 15
2026-06-09T09:52:59.0654955Z             },
2026-06-09T09:52:59.0655045Z             {
2026-06-09T09:52:59.0655161Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0655257Z               "line": 55
2026-06-09T09:52:59.0655340Z             },
2026-06-09T09:52:59.0655430Z             {
2026-06-09T09:52:59.0655550Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0655766Z               "line": 66
2026-06-09T09:52:59.0655858Z             },
2026-06-09T09:52:59.0655939Z             {
2026-06-09T09:52:59.0656062Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0656158Z               "line": 115
2026-06-09T09:52:59.0656244Z             },
2026-06-09T09:52:59.0656334Z             {
2026-06-09T09:52:59.0656535Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0656630Z               "line": 138
2026-06-09T09:52:59.0656715Z             }
2026-06-09T09:52:59.0656802Z           ]
2026-06-09T09:52:59.0656887Z         },
2026-06-09T09:52:59.0656978Z         "int": {
2026-06-09T09:52:59.0657073Z           "complete": false,
2026-06-09T09:52:59.0657165Z           "evidence": []
2026-06-09T09:52:59.0657254Z         },
2026-06-09T09:52:59.0657335Z         "unit": {
2026-06-09T09:52:59.0657432Z           "complete": true,
2026-06-09T09:52:59.0657522Z           "evidence": [
2026-06-09T09:52:59.0657616Z             {
2026-06-09T09:52:59.0657742Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T09:52:59.0657832Z               "line": 149
2026-06-09T09:52:59.0657926Z             },
2026-06-09T09:52:59.0658011Z             {
2026-06-09T09:52:59.0658126Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T09:52:59.0658219Z               "line": 155
2026-06-09T09:52:59.0658309Z             },
2026-06-09T09:52:59.0658405Z             {
2026-06-09T09:52:59.0658511Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T09:52:59.0658605Z               "line": 169
2026-06-09T09:52:59.0658691Z             },
2026-06-09T09:52:59.0658782Z             {
2026-06-09T09:52:59.0658896Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T09:52:59.0659064Z               "line": 178
2026-06-09T09:52:59.0659154Z             },
2026-06-09T09:52:59.0659239Z             {
2026-06-09T09:52:59.0659360Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0659450Z               "line": 195
2026-06-09T09:52:59.0659545Z             },
2026-06-09T09:52:59.0659640Z             {
2026-06-09T09:52:59.0659750Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0659845Z               "line": 208
2026-06-09T09:52:59.0659931Z             },
2026-06-09T09:52:59.0660023Z             {
2026-06-09T09:52:59.0660145Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0660240Z               "line": 271
2026-06-09T09:52:59.0660328Z             },
2026-06-09T09:52:59.0660417Z             {
2026-06-09T09:52:59.0660537Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0660623Z               "line": 290
2026-06-09T09:52:59.0660714Z             },
2026-06-09T09:52:59.0660793Z             {
2026-06-09T09:52:59.0660917Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0661013Z               "line": 319
2026-06-09T09:52:59.0661094Z             }
2026-06-09T09:52:59.0661183Z           ]
2026-06-09T09:52:59.0661280Z         }
2026-06-09T09:52:59.0661366Z       }
2026-06-09T09:52:59.0661451Z     },
2026-06-09T09:52:59.0661541Z     {
2026-06-09T09:52:59.0661662Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-09T09:52:59.0661924Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-09T09:52:59.0662028Z       "requiredStages": [
2026-06-09T09:52:59.0662114Z         "impl",
2026-06-09T09:52:59.0662200Z         "unit",
2026-06-09T09:52:59.0662286Z         "int"
2026-06-09T09:52:59.0662366Z       ],
2026-06-09T09:52:59.0662447Z       "stages": {
2026-06-09T09:52:59.0662529Z         "doc": {
2026-06-09T09:52:59.0662625Z           "complete": false,
2026-06-09T09:52:59.0662718Z           "evidence": []
2026-06-09T09:52:59.0662815Z         },
2026-06-09T09:52:59.0662906Z         "impl": {
2026-06-09T09:52:59.0663005Z           "complete": true,
2026-06-09T09:52:59.0663085Z           "evidence": [
2026-06-09T09:52:59.0663171Z             {
2026-06-09T09:52:59.0663398Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0663488Z               "line": 269
2026-06-09T09:52:59.0663580Z             },
2026-06-09T09:52:59.0663660Z             {
2026-06-09T09:52:59.0663779Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0663870Z               "line": 578
2026-06-09T09:52:59.0664046Z             },
2026-06-09T09:52:59.0664132Z             {
2026-06-09T09:52:59.0664242Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0664337Z               "line": 601
2026-06-09T09:52:59.0664423Z             },
2026-06-09T09:52:59.0664510Z             {
2026-06-09T09:52:59.0664633Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.0664728Z               "line": 625
2026-06-09T09:52:59.0664815Z             },
2026-06-09T09:52:59.0664900Z             {
2026-06-09T09:52:59.0665028Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0665130Z               "line": 511
2026-06-09T09:52:59.0665261Z             },
2026-06-09T09:52:59.0665362Z             {
2026-06-09T09:52:59.0665478Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0665567Z               "line": 599
2026-06-09T09:52:59.0665653Z             },
2026-06-09T09:52:59.0665735Z             {
2026-06-09T09:52:59.0665868Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0665953Z               "line": 709
2026-06-09T09:52:59.0666033Z             },
2026-06-09T09:52:59.0666119Z             {
2026-06-09T09:52:59.0666270Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.0666355Z               "line": 757
2026-06-09T09:52:59.0666447Z             },
2026-06-09T09:52:59.0666533Z             {
2026-06-09T09:52:59.0666641Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T09:52:59.0666738Z               "line": 46
2026-06-09T09:52:59.0666823Z             },
2026-06-09T09:52:59.0666913Z             {
2026-06-09T09:52:59.0667033Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T09:52:59.0667128Z               "line": 167
2026-06-09T09:52:59.0667218Z             },
2026-06-09T09:52:59.0667299Z             {
2026-06-09T09:52:59.0667415Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-09T09:52:59.0667500Z               "line": 71
2026-06-09T09:52:59.0667605Z             },
2026-06-09T09:52:59.0667687Z             {
2026-06-09T09:52:59.0667810Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0667905Z               "line": 134
2026-06-09T09:52:59.0667987Z             },
2026-06-09T09:52:59.0668077Z             {
2026-06-09T09:52:59.0668186Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0668288Z               "line": 180
2026-06-09T09:52:59.0668369Z             }
2026-06-09T09:52:59.0668458Z           ]
2026-06-09T09:52:59.0668566Z         },
2026-06-09T09:52:59.0668648Z         "int": {
2026-06-09T09:52:59.0668747Z           "complete": true,
2026-06-09T09:52:59.0668841Z           "evidence": [
2026-06-09T09:52:59.0668936Z             {
2026-06-09T09:52:59.0669146Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-09T09:52:59.0669242Z               "line": 27
2026-06-09T09:52:59.0669338Z             },
2026-06-09T09:52:59.0669423Z             {
2026-06-09T09:52:59.0669566Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-09T09:52:59.0669652Z               "line": 129
2026-06-09T09:52:59.0669742Z             },
2026-06-09T09:52:59.0669823Z             {
2026-06-09T09:52:59.0669953Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-09T09:52:59.0670043Z               "line": 200
2026-06-09T09:52:59.0670128Z             }
2026-06-09T09:52:59.0670215Z           ]
2026-06-09T09:52:59.0670301Z         },
2026-06-09T09:52:59.0670391Z         "unit": {
2026-06-09T09:52:59.0670476Z           "complete": true,
2026-06-09T09:52:59.0670573Z           "evidence": [
2026-06-09T09:52:59.0670782Z             {
2026-06-09T09:52:59.0670893Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T09:52:59.0670987Z               "line": 313
2026-06-09T09:52:59.0671068Z             },
2026-06-09T09:52:59.0671155Z             {
2026-06-09T09:52:59.0671269Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T09:52:59.0671500Z               "line": 345
2026-06-09T09:52:59.0671588Z             },
2026-06-09T09:52:59.0671668Z             {
2026-06-09T09:52:59.0671787Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-09T09:52:59.0671873Z               "line": 366
2026-06-09T09:52:59.0671964Z             },
2026-06-09T09:52:59.0672054Z             {
2026-06-09T09:52:59.0672169Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T09:52:59.0672264Z               "line": 254
2026-06-09T09:52:59.0672345Z             },
2026-06-09T09:52:59.0672436Z             {
2026-06-09T09:52:59.0672550Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-09T09:52:59.0672660Z               "line": 239
2026-06-09T09:52:59.0672750Z             },
2026-06-09T09:52:59.0672832Z             {
2026-06-09T09:52:59.0672945Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-09T09:52:59.0673031Z               "line": 230
2026-06-09T09:52:59.0673123Z             },
2026-06-09T09:52:59.0673213Z             {
2026-06-09T09:52:59.0673327Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0673418Z               "line": 488
2026-06-09T09:52:59.0673504Z             },
2026-06-09T09:52:59.0673589Z             {
2026-06-09T09:52:59.0673698Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.0673793Z               "line": 518
2026-06-09T09:52:59.0673878Z             }
2026-06-09T09:52:59.0673967Z           ]
2026-06-09T09:52:59.0674053Z         }
2026-06-09T09:52:59.0674135Z       }
2026-06-09T09:52:59.0674220Z     },
2026-06-09T09:52:59.0674305Z     {
2026-06-09T09:52:59.0674425Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-09T09:52:59.0674630Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-09T09:52:59.0674726Z       "requiredStages": [
2026-06-09T09:52:59.0674821Z         "impl",
2026-06-09T09:52:59.0674907Z         "unit"
2026-06-09T09:52:59.0674992Z       ],
2026-06-09T09:52:59.0675079Z       "stages": {
2026-06-09T09:52:59.0675174Z         "doc": {
2026-06-09T09:52:59.0675268Z           "complete": false,
2026-06-09T09:52:59.0675361Z           "evidence": []
2026-06-09T09:52:59.0675451Z         },
2026-06-09T09:52:59.0675536Z         "impl": {
2026-06-09T09:52:59.0675632Z           "complete": true,
2026-06-09T09:52:59.0675723Z           "evidence": [
2026-06-09T09:52:59.0675812Z             {
2026-06-09T09:52:59.0675937Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0676038Z               "line": 56
2026-06-09T09:52:59.0676127Z             },
2026-06-09T09:52:59.0676204Z             {
2026-06-09T09:52:59.0676334Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0678804Z               "line": 65
2026-06-09T09:52:59.0678920Z             },
2026-06-09T09:52:59.0679103Z             {
2026-06-09T09:52:59.0679251Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0679353Z               "line": 72
2026-06-09T09:52:59.0679453Z             },
2026-06-09T09:52:59.0679545Z             {
2026-06-09T09:52:59.0679668Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0679763Z               "line": 33
2026-06-09T09:52:59.0679845Z             },
2026-06-09T09:52:59.0679940Z             {
2026-06-09T09:52:59.0680054Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0680145Z               "line": 65
2026-06-09T09:52:59.0680236Z             },
2026-06-09T09:52:59.0680317Z             {
2026-06-09T09:52:59.0680431Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0680513Z               "line": 74
2026-06-09T09:52:59.0680741Z             },
2026-06-09T09:52:59.0680828Z             {
2026-06-09T09:52:59.0680942Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0681037Z               "line": 83
2026-06-09T09:52:59.0681119Z             },
2026-06-09T09:52:59.0681208Z             {
2026-06-09T09:52:59.0681313Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0681505Z               "line": 92
2026-06-09T09:52:59.0681594Z             },
2026-06-09T09:52:59.0681676Z             {
2026-06-09T09:52:59.0681787Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0681876Z               "line": 101
2026-06-09T09:52:59.0681961Z             },
2026-06-09T09:52:59.0682042Z             {
2026-06-09T09:52:59.0682148Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0682233Z               "line": 112
2026-06-09T09:52:59.0682304Z             },
2026-06-09T09:52:59.0682390Z             {
2026-06-09T09:52:59.0682495Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0682595Z               "line": 130
2026-06-09T09:52:59.0682681Z             },
2026-06-09T09:52:59.0682772Z             {
2026-06-09T09:52:59.0682872Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0682961Z               "line": 139
2026-06-09T09:52:59.0683059Z             },
2026-06-09T09:52:59.0683139Z             {
2026-06-09T09:52:59.0683248Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0683344Z               "line": 148
2026-06-09T09:52:59.0683425Z             },
2026-06-09T09:52:59.0683510Z             {
2026-06-09T09:52:59.0683620Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0683712Z               "line": 159
2026-06-09T09:52:59.0683797Z             },
2026-06-09T09:52:59.0683887Z             {
2026-06-09T09:52:59.0684003Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0684098Z               "line": 167
2026-06-09T09:52:59.0684201Z             },
2026-06-09T09:52:59.0684296Z             {
2026-06-09T09:52:59.0684433Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0684537Z               "line": 176
2026-06-09T09:52:59.0684637Z             },
2026-06-09T09:52:59.0684738Z             {
2026-06-09T09:52:59.0684851Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0684962Z               "line": 185
2026-06-09T09:52:59.0685048Z             },
2026-06-09T09:52:59.0685138Z             {
2026-06-09T09:52:59.0685247Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0685353Z               "line": 194
2026-06-09T09:52:59.0685452Z             },
2026-06-09T09:52:59.0685543Z             {
2026-06-09T09:52:59.0685672Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0685772Z               "line": 206
2026-06-09T09:52:59.0685872Z             },
2026-06-09T09:52:59.0685968Z             {
2026-06-09T09:52:59.0686096Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0686216Z               "line": 213
2026-06-09T09:52:59.0686302Z             },
2026-06-09T09:52:59.0686406Z             {
2026-06-09T09:52:59.0686521Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0686631Z               "line": 222
2026-06-09T09:52:59.0686720Z             },
2026-06-09T09:52:59.0686836Z             {
2026-06-09T09:52:59.0686965Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0687063Z               "line": 229
2026-06-09T09:52:59.0687168Z             },
2026-06-09T09:52:59.0687259Z             {
2026-06-09T09:52:59.0687390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0687485Z               "line": 296
2026-06-09T09:52:59.0687600Z             },
2026-06-09T09:52:59.0687718Z             {
2026-06-09T09:52:59.0687839Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0687958Z               "line": 308
2026-06-09T09:52:59.0688047Z             },
2026-06-09T09:52:59.0688348Z             {
2026-06-09T09:52:59.0688492Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0688591Z               "line": 395
2026-06-09T09:52:59.0688686Z             }
2026-06-09T09:52:59.0688783Z           ]
2026-06-09T09:52:59.0688888Z         },
2026-06-09T09:52:59.0689073Z         "int": {
2026-06-09T09:52:59.0689326Z           "complete": false,
2026-06-09T09:52:59.0689437Z           "evidence": []
2026-06-09T09:52:59.0689531Z         },
2026-06-09T09:52:59.0689640Z         "unit": {
2026-06-09T09:52:59.0689740Z           "complete": true,
2026-06-09T09:52:59.0689858Z           "evidence": [
2026-06-09T09:52:59.0689961Z             {
2026-06-09T09:52:59.0690109Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0690219Z               "line": 477
2026-06-09T09:52:59.0690309Z             },
2026-06-09T09:52:59.0690415Z             {
2026-06-09T09:52:59.0690543Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0690671Z               "line": 518
2026-06-09T09:52:59.0690759Z             },
2026-06-09T09:52:59.0690877Z             {
2026-06-09T09:52:59.0691011Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0691106Z               "line": 531
2026-06-09T09:52:59.0691215Z             },
2026-06-09T09:52:59.0691315Z             {
2026-06-09T09:52:59.0691463Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0691558Z               "line": 617
2026-06-09T09:52:59.0691660Z             }
2026-06-09T09:52:59.0691764Z           ]
2026-06-09T09:52:59.0691854Z         }
2026-06-09T09:52:59.0691960Z       }
2026-06-09T09:52:59.0692051Z     },
2026-06-09T09:52:59.0692140Z     {
2026-06-09T09:52:59.0692250Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-09T09:52:59.0692468Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-09T09:52:59.0692582Z       "requiredStages": [
2026-06-09T09:52:59.0692674Z         "impl",
2026-06-09T09:52:59.0692797Z         "unit"
2026-06-09T09:52:59.0692897Z       ],
2026-06-09T09:52:59.0693008Z       "stages": {
2026-06-09T09:52:59.0693098Z         "doc": {
2026-06-09T09:52:59.0693202Z           "complete": false,
2026-06-09T09:52:59.0693309Z           "evidence": []
2026-06-09T09:52:59.0693399Z         },
2026-06-09T09:52:59.0693517Z         "impl": {
2026-06-09T09:52:59.0693614Z           "complete": true,
2026-06-09T09:52:59.0693723Z           "evidence": [
2026-06-09T09:52:59.0693818Z             {
2026-06-09T09:52:59.0693957Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.0694075Z               "line": 143
2026-06-09T09:52:59.0694170Z             },
2026-06-09T09:52:59.0694277Z             {
2026-06-09T09:52:59.0694409Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0694519Z               "line": 148
2026-06-09T09:52:59.0694610Z             }
2026-06-09T09:52:59.0694714Z           ]
2026-06-09T09:52:59.0694813Z         },
2026-06-09T09:52:59.0694918Z         "int": {
2026-06-09T09:52:59.0695026Z           "complete": false,
2026-06-09T09:52:59.0695116Z           "evidence": []
2026-06-09T09:52:59.0695202Z         },
2026-06-09T09:52:59.0695284Z         "unit": {
2026-06-09T09:52:59.0695384Z           "complete": true,
2026-06-09T09:52:59.0695488Z           "evidence": [
2026-06-09T09:52:59.0695584Z             {
2026-06-09T09:52:59.0695712Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.0695807Z               "line": 264
2026-06-09T09:52:59.0695909Z             },
2026-06-09T09:52:59.0695994Z             {
2026-06-09T09:52:59.0696127Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0696237Z               "line": 544
2026-06-09T09:52:59.0696327Z             },
2026-06-09T09:52:59.0696428Z             {
2026-06-09T09:52:59.0696552Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.0696666Z               "line": 557
2026-06-09T09:52:59.0696757Z             }
2026-06-09T09:52:59.0696986Z           ]
2026-06-09T09:52:59.0697081Z         }
2026-06-09T09:52:59.0697172Z       }
2026-06-09T09:52:59.0697280Z     },
2026-06-09T09:52:59.0697367Z     {
2026-06-09T09:52:59.0697497Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-09T09:52:59.0697637Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-09T09:52:59.0697847Z       "requiredStages": [
2026-06-09T09:52:59.0697950Z         "impl",
2026-06-09T09:52:59.0698040Z         "unit"
2026-06-09T09:52:59.0698142Z       ],
2026-06-09T09:52:59.0698241Z       "stages": {
2026-06-09T09:52:59.0698346Z         "doc": {
2026-06-09T09:52:59.0698447Z           "complete": false,
2026-06-09T09:52:59.0698561Z           "evidence": []
2026-06-09T09:52:59.0698665Z         },
2026-06-09T09:52:59.0698757Z         "impl": {
2026-06-09T09:52:59.0698871Z           "complete": true,
2026-06-09T09:52:59.0699043Z           "evidence": [
2026-06-09T09:52:59.0699152Z             {
2026-06-09T09:52:59.0699280Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0699410Z               "line": 114
2026-06-09T09:52:59.0699513Z             },
2026-06-09T09:52:59.0699600Z             {
2026-06-09T09:52:59.0699744Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.0699837Z               "line": 481
2026-06-09T09:52:59.0699948Z             }
2026-06-09T09:52:59.0700040Z           ]
2026-06-09T09:52:59.0700143Z         },
2026-06-09T09:52:59.0700242Z         "int": {
2026-06-09T09:52:59.0700342Z           "complete": false,
2026-06-09T09:52:59.0700455Z           "evidence": []
2026-06-09T09:52:59.0700545Z         },
2026-06-09T09:52:59.0700655Z         "unit": {
2026-06-09T09:52:59.0700752Z           "complete": true,
2026-06-09T09:52:59.0700864Z           "evidence": [
2026-06-09T09:52:59.0700960Z             {
2026-06-09T09:52:59.0701085Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.0701193Z               "line": 515
2026-06-09T09:52:59.0701280Z             }
2026-06-09T09:52:59.0701389Z           ]
2026-06-09T09:52:59.0701484Z         }
2026-06-09T09:52:59.0701590Z       }
2026-06-09T09:52:59.0701699Z     },
2026-06-09T09:52:59.0701785Z     {
2026-06-09T09:52:59.0701919Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-09T09:52:59.0702086Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-09T09:52:59.0702205Z       "requiredStages": [
2026-06-09T09:52:59.0702301Z         "impl",
2026-06-09T09:52:59.0702410Z         "unit"
2026-06-09T09:52:59.0702520Z       ],
2026-06-09T09:52:59.0702616Z       "stages": {
2026-06-09T09:52:59.0702719Z         "doc": {
2026-06-09T09:52:59.0702820Z           "complete": false,
2026-06-09T09:52:59.0702926Z           "evidence": []
2026-06-09T09:52:59.0703019Z         },
2026-06-09T09:52:59.0703123Z         "impl": {
2026-06-09T09:52:59.0703224Z           "complete": true,
2026-06-09T09:52:59.0703306Z           "evidence": [
2026-06-09T09:52:59.0703410Z             {
2026-06-09T09:52:59.0703549Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0703658Z               "line": 459
2026-06-09T09:52:59.0703744Z             },
2026-06-09T09:52:59.0703845Z             {
2026-06-09T09:52:59.0703987Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0704082Z               "line": 28
2026-06-09T09:52:59.0704203Z             }
2026-06-09T09:52:59.0704297Z           ]
2026-06-09T09:52:59.0704402Z         },
2026-06-09T09:52:59.0704493Z         "int": {
2026-06-09T09:52:59.0704612Z           "complete": false,
2026-06-09T09:52:59.0704721Z           "evidence": []
2026-06-09T09:52:59.0704813Z         },
2026-06-09T09:52:59.0704921Z         "unit": {
2026-06-09T09:52:59.0705017Z           "complete": true,
2026-06-09T09:52:59.0705123Z           "evidence": [
2026-06-09T09:52:59.0705213Z             {
2026-06-09T09:52:59.0705349Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0705460Z               "line": 229
2026-06-09T09:52:59.0705680Z             }
2026-06-09T09:52:59.0705787Z           ]
2026-06-09T09:52:59.0705878Z         }
2026-06-09T09:52:59.0705976Z       }
2026-06-09T09:52:59.0706067Z     },
2026-06-09T09:52:59.0706173Z     {
2026-06-09T09:52:59.0706310Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-09T09:52:59.0706445Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-09T09:52:59.0706673Z       "requiredStages": [],
2026-06-09T09:52:59.0706764Z       "stages": {
2026-06-09T09:52:59.0706859Z         "doc": {
2026-06-09T09:52:59.0706949Z           "complete": false,
2026-06-09T09:52:59.0707051Z           "evidence": []
2026-06-09T09:52:59.0707135Z         },
2026-06-09T09:52:59.0707221Z         "impl": {
2026-06-09T09:52:59.0707317Z           "complete": false,
2026-06-09T09:52:59.0707413Z           "evidence": []
2026-06-09T09:52:59.0707493Z         },
2026-06-09T09:52:59.0707574Z         "int": {
2026-06-09T09:52:59.0707671Z           "complete": false,
2026-06-09T09:52:59.0707770Z           "evidence": []
2026-06-09T09:52:59.0707860Z         },
2026-06-09T09:52:59.0707947Z         "unit": {
2026-06-09T09:52:59.0708042Z           "complete": false,
2026-06-09T09:52:59.0708136Z           "evidence": []
2026-06-09T09:52:59.0708221Z         }
2026-06-09T09:52:59.0708312Z       }
2026-06-09T09:52:59.0708416Z     },
2026-06-09T09:52:59.0708515Z     {
2026-06-09T09:52:59.0708639Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-09T09:52:59.0708792Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-09T09:52:59.0708906Z       "requiredStages": [
2026-06-09T09:52:59.0709078Z         "impl",
2026-06-09T09:52:59.0709191Z         "unit"
2026-06-09T09:52:59.0709297Z       ],
2026-06-09T09:52:59.0709392Z       "stages": {
2026-06-09T09:52:59.0709501Z         "doc": {
2026-06-09T09:52:59.0709598Z           "complete": false,
2026-06-09T09:52:59.0709717Z           "evidence": []
2026-06-09T09:52:59.0709802Z         },
2026-06-09T09:52:59.0709893Z         "impl": {
2026-06-09T09:52:59.0709999Z           "complete": true,
2026-06-09T09:52:59.0710078Z           "evidence": [
2026-06-09T09:52:59.0710174Z             {
2026-06-09T09:52:59.0710285Z               "path": "crates/spt-live/src/turn.rs",
2026-06-09T09:52:59.0710384Z               "line": 19
2026-06-09T09:52:59.0710470Z             },
2026-06-09T09:52:59.0710562Z             {
2026-06-09T09:52:59.0710694Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0710784Z               "line": 347
2026-06-09T09:52:59.0710874Z             },
2026-06-09T09:52:59.0710955Z             {
2026-06-09T09:52:59.0711086Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0711172Z               "line": 383
2026-06-09T09:52:59.0711259Z             },
2026-06-09T09:52:59.0711354Z             {
2026-06-09T09:52:59.0711467Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0711564Z               "line": 15
2026-06-09T09:52:59.0711650Z             },
2026-06-09T09:52:59.0711744Z             {
2026-06-09T09:52:59.0711860Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0711954Z               "line": 48
2026-06-09T09:52:59.0712044Z             },
2026-06-09T09:52:59.0712126Z             {
2026-06-09T09:52:59.0712246Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0712331Z               "line": 119
2026-06-09T09:52:59.0712431Z             },
2026-06-09T09:52:59.0712513Z             {
2026-06-09T09:52:59.0712651Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0712750Z               "line": 2800
2026-06-09T09:52:59.0712833Z             }
2026-06-09T09:52:59.0712936Z           ]
2026-06-09T09:52:59.0713027Z         },
2026-06-09T09:52:59.0713133Z         "int": {
2026-06-09T09:52:59.0713227Z           "complete": false,
2026-06-09T09:52:59.0713332Z           "evidence": []
2026-06-09T09:52:59.0713434Z         },
2026-06-09T09:52:59.0713529Z         "unit": {
2026-06-09T09:52:59.0713660Z           "complete": true,
2026-06-09T09:52:59.0713894Z           "evidence": [
2026-06-09T09:52:59.0714003Z             {
2026-06-09T09:52:59.0714128Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.0714246Z               "line": 496
2026-06-09T09:52:59.0714351Z             },
2026-06-09T09:52:59.0714429Z             {
2026-06-09T09:52:59.0714666Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0714753Z               "line": 165
2026-06-09T09:52:59.0714843Z             },
2026-06-09T09:52:59.0714928Z             {
2026-06-09T09:52:59.0715044Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-09T09:52:59.0715138Z               "line": 175
2026-06-09T09:52:59.0715224Z             }
2026-06-09T09:52:59.0715315Z           ]
2026-06-09T09:52:59.0715407Z         }
2026-06-09T09:52:59.0715500Z       }
2026-06-09T09:52:59.0715582Z     },
2026-06-09T09:52:59.0715668Z     {
2026-06-09T09:52:59.0715786Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-09T09:52:59.0716799Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-09T09:52:59.0716908Z       "requiredStages": [
2026-06-09T09:52:59.0717071Z         "impl",
2026-06-09T09:52:59.0717204Z         "unit"
2026-06-09T09:52:59.0717301Z       ],
2026-06-09T09:52:59.0717391Z       "stages": {
2026-06-09T09:52:59.0717481Z         "doc": {
2026-06-09T09:52:59.0717577Z           "complete": false,
2026-06-09T09:52:59.0717677Z           "evidence": []
2026-06-09T09:52:59.0717762Z         },
2026-06-09T09:52:59.0717843Z         "impl": {
2026-06-09T09:52:59.0717935Z           "complete": true,
2026-06-09T09:52:59.0718024Z           "evidence": [
2026-06-09T09:52:59.0718129Z             {
2026-06-09T09:52:59.0718245Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0718377Z               "line": 2558
2026-06-09T09:52:59.0718464Z             },
2026-06-09T09:52:59.0718570Z             {
2026-06-09T09:52:59.0718711Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0718795Z               "line": 103
2026-06-09T09:52:59.0718906Z             },
2026-06-09T09:52:59.0719098Z             {
2026-06-09T09:52:59.0719252Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0719333Z               "line": 135
2026-06-09T09:52:59.0719432Z             }
2026-06-09T09:52:59.0719572Z           ]
2026-06-09T09:52:59.0719653Z         },
2026-06-09T09:52:59.0719742Z         "int": {
2026-06-09T09:52:59.0719839Z           "complete": false,
2026-06-09T09:52:59.0719929Z           "evidence": []
2026-06-09T09:52:59.0720014Z         },
2026-06-09T09:52:59.0720105Z         "unit": {
2026-06-09T09:52:59.0720196Z           "complete": true,
2026-06-09T09:52:59.0720282Z           "evidence": [
2026-06-09T09:52:59.0720377Z             {
2026-06-09T09:52:59.0720525Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0720615Z               "line": 258
2026-06-09T09:52:59.0720696Z             },
2026-06-09T09:52:59.0720783Z             {
2026-06-09T09:52:59.0720892Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0720977Z               "line": 283
2026-06-09T09:52:59.0721074Z             },
2026-06-09T09:52:59.0721155Z             {
2026-06-09T09:52:59.0721268Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0721358Z               "line": 296
2026-06-09T09:52:59.0721463Z             },
2026-06-09T09:52:59.0721548Z             {
2026-06-09T09:52:59.0721651Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.0721761Z               "line": 308
2026-06-09T09:52:59.0721843Z             }
2026-06-09T09:52:59.0721942Z           ]
2026-06-09T09:52:59.0722028Z         }
2026-06-09T09:52:59.0722124Z       }
2026-06-09T09:52:59.0722224Z     },
2026-06-09T09:52:59.0722309Z     {
2026-06-09T09:52:59.0722567Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-09T09:52:59.0722734Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-09T09:52:59.0722843Z       "requiredStages": [
2026-06-09T09:52:59.0722929Z         "impl",
2026-06-09T09:52:59.0723049Z         "unit"
2026-06-09T09:52:59.0723277Z       ],
2026-06-09T09:52:59.0723369Z       "stages": {
2026-06-09T09:52:59.0723473Z         "doc": {
2026-06-09T09:52:59.0723568Z           "complete": false,
2026-06-09T09:52:59.0723665Z           "evidence": []
2026-06-09T09:52:59.0723746Z         },
2026-06-09T09:52:59.0723839Z         "impl": {
2026-06-09T09:52:59.0723936Z           "complete": true,
2026-06-09T09:52:59.0724027Z           "evidence": [
2026-06-09T09:52:59.0724117Z             {
2026-06-09T09:52:59.0724234Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0724330Z               "line": 35
2026-06-09T09:52:59.0724417Z             }
2026-06-09T09:52:59.0724506Z           ]
2026-06-09T09:52:59.0724601Z         },
2026-06-09T09:52:59.0724689Z         "int": {
2026-06-09T09:52:59.0724788Z           "complete": false,
2026-06-09T09:52:59.0724878Z           "evidence": []
2026-06-09T09:52:59.0724965Z         },
2026-06-09T09:52:59.0725055Z         "unit": {
2026-06-09T09:52:59.0725150Z           "complete": true,
2026-06-09T09:52:59.0725250Z           "evidence": [
2026-06-09T09:52:59.0725337Z             {
2026-06-09T09:52:59.0725460Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-09T09:52:59.0725550Z               "line": 220
2026-06-09T09:52:59.0725638Z             }
2026-06-09T09:52:59.0725722Z           ]
2026-06-09T09:52:59.0725808Z         }
2026-06-09T09:52:59.0725895Z       }
2026-06-09T09:52:59.0725976Z     },
2026-06-09T09:52:59.0726060Z     {
2026-06-09T09:52:59.0726171Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-09T09:52:59.0726474Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-09T09:52:59.0726584Z       "requiredStages": [
2026-06-09T09:52:59.0726678Z         "impl",
2026-06-09T09:52:59.0726773Z         "unit"
2026-06-09T09:52:59.0726863Z       ],
2026-06-09T09:52:59.0726969Z       "stages": {
2026-06-09T09:52:59.0727054Z         "doc": {
2026-06-09T09:52:59.0727173Z           "complete": false,
2026-06-09T09:52:59.0727284Z           "evidence": []
2026-06-09T09:52:59.0727387Z         },
2026-06-09T09:52:59.0727493Z         "impl": {
2026-06-09T09:52:59.0727593Z           "complete": true,
2026-06-09T09:52:59.0727702Z           "evidence": [
2026-06-09T09:52:59.0727793Z             {
2026-06-09T09:52:59.0727941Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.0728031Z               "line": 398
2026-06-09T09:52:59.0728122Z             },
2026-06-09T09:52:59.0728204Z             {
2026-06-09T09:52:59.0728327Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.0728422Z               "line": 409
2026-06-09T09:52:59.0728505Z             },
2026-06-09T09:52:59.0728599Z             {
2026-06-09T09:52:59.0728723Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.0728825Z               "line": 156
2026-06-09T09:52:59.0728913Z             }
2026-06-09T09:52:59.0729082Z           ]
2026-06-09T09:52:59.0729177Z         },
2026-06-09T09:52:59.0729266Z         "int": {
2026-06-09T09:52:59.0729370Z           "complete": false,
2026-06-09T09:52:59.0729461Z           "evidence": []
2026-06-09T09:52:59.0729555Z         },
2026-06-09T09:52:59.0729645Z         "unit": {
2026-06-09T09:52:59.0729735Z           "complete": true,
2026-06-09T09:52:59.0729836Z           "evidence": [
2026-06-09T09:52:59.0729916Z             {
2026-06-09T09:52:59.0730040Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.0730132Z               "line": 812
2026-06-09T09:52:59.0730231Z             },
2026-06-09T09:52:59.0730312Z             {
2026-06-09T09:52:59.0730423Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.0730622Z               "line": 826
2026-06-09T09:52:59.0730708Z             },
2026-06-09T09:52:59.0730822Z             {
2026-06-09T09:52:59.0730955Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.0731062Z               "line": 845
2026-06-09T09:52:59.0731156Z             },
2026-06-09T09:52:59.0731353Z             {
2026-06-09T09:52:59.0731485Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.0731581Z               "line": 862
2026-06-09T09:52:59.0731687Z             },
2026-06-09T09:52:59.0731791Z             {
2026-06-09T09:52:59.0731927Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T09:52:59.0732042Z               "line": 441
2026-06-09T09:52:59.0732131Z             }
2026-06-09T09:52:59.0732239Z           ]
2026-06-09T09:52:59.0732326Z         }
2026-06-09T09:52:59.0732427Z       }
2026-06-09T09:52:59.0732516Z     },
2026-06-09T09:52:59.0732607Z     {
2026-06-09T09:52:59.0732718Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-09T09:52:59.0733551Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-09T09:52:59.0733666Z       "requiredStages": [
2026-06-09T09:52:59.0733752Z         "doc",
2026-06-09T09:52:59.0733847Z         "impl",
2026-06-09T09:52:59.0733938Z         "unit"
2026-06-09T09:52:59.0734019Z       ],
2026-06-09T09:52:59.0734114Z       "stages": {
2026-06-09T09:52:59.0734195Z         "doc": {
2026-06-09T09:52:59.0734296Z           "complete": true,
2026-06-09T09:52:59.0734385Z           "evidence": [
2026-06-09T09:52:59.0734476Z             {
2026-06-09T09:52:59.0734597Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-09T09:52:59.0734691Z               "line": 313
2026-06-09T09:52:59.0734780Z             }
2026-06-09T09:52:59.0734861Z           ]
2026-06-09T09:52:59.0734967Z         },
2026-06-09T09:52:59.0735057Z         "impl": {
2026-06-09T09:52:59.0735156Z           "complete": true,
2026-06-09T09:52:59.0735272Z           "evidence": [
2026-06-09T09:52:59.0735372Z             {
2026-06-09T09:52:59.0735520Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.0735620Z               "line": 85
2026-06-09T09:52:59.0735710Z             },
2026-06-09T09:52:59.0735796Z             {
2026-06-09T09:52:59.0735921Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T09:52:59.0736020Z               "line": 99
2026-06-09T09:52:59.0736111Z             },
2026-06-09T09:52:59.0736217Z             {
2026-06-09T09:52:59.0736349Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.0736460Z               "line": 55
2026-06-09T09:52:59.0736550Z             },
2026-06-09T09:52:59.0736669Z             {
2026-06-09T09:52:59.0736803Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.0736907Z               "line": 31
2026-06-09T09:52:59.0737011Z             },
2026-06-09T09:52:59.0737097Z             {
2026-06-09T09:52:59.0737220Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.0737299Z               "line": 187
2026-06-09T09:52:59.0737389Z             },
2026-06-09T09:52:59.0737486Z             {
2026-06-09T09:52:59.0737609Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.0737704Z               "line": 95
2026-06-09T09:52:59.0737786Z             },
2026-06-09T09:52:59.0737877Z             {
2026-06-09T09:52:59.0738005Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.0738092Z               "line": 29
2026-06-09T09:52:59.0738191Z             },
2026-06-09T09:52:59.0738272Z             {
2026-06-09T09:52:59.0738397Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.0738487Z               "line": 104
2026-06-09T09:52:59.0738577Z             },
2026-06-09T09:52:59.0738755Z             {
2026-06-09T09:52:59.0738883Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0739055Z               "line": 192
2026-06-09T09:52:59.0739140Z             },
2026-06-09T09:52:59.0739231Z             {
2026-06-09T09:52:59.0739341Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T09:52:59.0739536Z               "line": 28
2026-06-09T09:52:59.0739622Z             },
2026-06-09T09:52:59.0739695Z             {
2026-06-09T09:52:59.0739821Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T09:52:59.0739925Z               "line": 74
2026-06-09T09:52:59.0740012Z             },
2026-06-09T09:52:59.0740092Z             {
2026-06-09T09:52:59.0740219Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T09:52:59.0740309Z               "line": 32
2026-06-09T09:52:59.0740391Z             },
2026-06-09T09:52:59.0740476Z             {
2026-06-09T09:52:59.0740586Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0740692Z               "line": 40
2026-06-09T09:52:59.0740773Z             },
2026-06-09T09:52:59.0740863Z             {
2026-06-09T09:52:59.0740978Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0741068Z               "line": 184
2026-06-09T09:52:59.0741158Z             },
2026-06-09T09:52:59.0741245Z             {
2026-06-09T09:52:59.0741354Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-09T09:52:59.0741440Z               "line": 70
2026-06-09T09:52:59.0741530Z             },
2026-06-09T09:52:59.0741613Z             {
2026-06-09T09:52:59.0741721Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.0741812Z               "line": 223
2026-06-09T09:52:59.0741893Z             },
2026-06-09T09:52:59.0741979Z             {
2026-06-09T09:52:59.0742092Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T09:52:59.0742184Z               "line": 37
2026-06-09T09:52:59.0742271Z             },
2026-06-09T09:52:59.0742360Z             {
2026-06-09T09:52:59.0742478Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.0742564Z               "line": 38
2026-06-09T09:52:59.0742649Z             },
2026-06-09T09:52:59.0742738Z             {
2026-06-09T09:52:59.0742852Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T09:52:59.0742949Z               "line": 36
2026-06-09T09:52:59.0743029Z             },
2026-06-09T09:52:59.0743114Z             {
2026-06-09T09:52:59.0743220Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T09:52:59.0743311Z               "line": 40
2026-06-09T09:52:59.0743396Z             }
2026-06-09T09:52:59.0743482Z           ]
2026-06-09T09:52:59.0743568Z         },
2026-06-09T09:52:59.0743649Z         "int": {
2026-06-09T09:52:59.0743744Z           "complete": false,
2026-06-09T09:52:59.0743831Z           "evidence": []
2026-06-09T09:52:59.0743921Z         },
2026-06-09T09:52:59.0744007Z         "unit": {
2026-06-09T09:52:59.0744097Z           "complete": true,
2026-06-09T09:52:59.0744193Z           "evidence": [
2026-06-09T09:52:59.0744278Z             {
2026-06-09T09:52:59.0744397Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.0744485Z               "line": 212
2026-06-09T09:52:59.0744574Z             },
2026-06-09T09:52:59.0744660Z             {
2026-06-09T09:52:59.0744785Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-09T09:52:59.0744880Z               "line": 136
2026-06-09T09:52:59.0744960Z             },
2026-06-09T09:52:59.0745046Z             {
2026-06-09T09:52:59.0745166Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T09:52:59.0745255Z               "line": 685
2026-06-09T09:52:59.0745340Z             },
2026-06-09T09:52:59.0745421Z             {
2026-06-09T09:52:59.0745537Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T09:52:59.0745627Z               "line": 224
2026-06-09T09:52:59.0745708Z             },
2026-06-09T09:52:59.0745899Z             {
2026-06-09T09:52:59.0746017Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-09T09:52:59.0746109Z               "line": 157
2026-06-09T09:52:59.0746228Z             },
2026-06-09T09:52:59.0746313Z             {
2026-06-09T09:52:59.0746424Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T09:52:59.0746613Z               "line": 112
2026-06-09T09:52:59.0746695Z             },
2026-06-09T09:52:59.0746781Z             {
2026-06-09T09:52:59.0746896Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T09:52:59.0746986Z               "line": 157
2026-06-09T09:52:59.0747072Z             },
2026-06-09T09:52:59.0747153Z             {
2026-06-09T09:52:59.0747271Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.0747354Z               "line": 215
2026-06-09T09:52:59.0747439Z             },
2026-06-09T09:52:59.0747528Z             {
2026-06-09T09:52:59.0747642Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T09:52:59.0747748Z               "line": 140
2026-06-09T09:52:59.0747827Z             },
2026-06-09T09:52:59.0747912Z             {
2026-06-09T09:52:59.0748022Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T09:52:59.0748114Z               "line": 162
2026-06-09T09:52:59.0748202Z             }
2026-06-09T09:52:59.0748289Z           ]
2026-06-09T09:52:59.0748375Z         }
2026-06-09T09:52:59.0748456Z       }
2026-06-09T09:52:59.0748541Z     },
2026-06-09T09:52:59.0748623Z     {
2026-06-09T09:52:59.0751971Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-09T09:52:59.0752168Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-09T09:52:59.0752271Z       "requiredStages": [
2026-06-09T09:52:59.0752362Z         "impl",
2026-06-09T09:52:59.0752444Z         "unit"
2026-06-09T09:52:59.0752530Z       ],
2026-06-09T09:52:59.0752614Z       "stages": {
2026-06-09T09:52:59.0752701Z         "doc": {
2026-06-09T09:52:59.0752797Z           "complete": false,
2026-06-09T09:52:59.0752901Z           "evidence": []
2026-06-09T09:52:59.0752986Z         },
2026-06-09T09:52:59.0753071Z         "impl": {
2026-06-09T09:52:59.0753167Z           "complete": true,
2026-06-09T09:52:59.0753246Z           "evidence": [
2026-06-09T09:52:59.0753331Z             {
2026-06-09T09:52:59.0753446Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.0753538Z               "line": 95
2026-06-09T09:52:59.0753637Z             },
2026-06-09T09:52:59.0753727Z             {
2026-06-09T09:52:59.0753852Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0753937Z               "line": 102
2026-06-09T09:52:59.0754018Z             }
2026-06-09T09:52:59.0754100Z           ]
2026-06-09T09:52:59.0754181Z         },
2026-06-09T09:52:59.0754271Z         "int": {
2026-06-09T09:52:59.0754362Z           "complete": false,
2026-06-09T09:52:59.0754448Z           "evidence": []
2026-06-09T09:52:59.0754529Z         },
2026-06-09T09:52:59.0754614Z         "unit": {
2026-06-09T09:52:59.0754710Z           "complete": true,
2026-06-09T09:52:59.0754796Z           "evidence": [
2026-06-09T09:52:59.0754886Z             {
2026-06-09T09:52:59.0754991Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.0755082Z               "line": 250
2026-06-09T09:52:59.0755163Z             },
2026-06-09T09:52:59.0755248Z             {
2026-06-09T09:52:59.0755369Z               "path": "crates/spt-store/src/proc.rs",
2026-06-09T09:52:59.0755454Z               "line": 198
2026-06-09T09:52:59.0755539Z             },
2026-06-09T09:52:59.0755616Z             {
2026-06-09T09:52:59.0755731Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0755815Z               "line": 442
2026-06-09T09:52:59.0755905Z             },
2026-06-09T09:52:59.0755991Z             {
2026-06-09T09:52:59.0756097Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0756187Z               "line": 475
2026-06-09T09:52:59.0756263Z             }
2026-06-09T09:52:59.0756497Z           ]
2026-06-09T09:52:59.0756582Z         }
2026-06-09T09:52:59.0756659Z       }
2026-06-09T09:52:59.0756745Z     },
2026-06-09T09:52:59.0756821Z     {
2026-06-09T09:52:59.0756930Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-09T09:52:59.0757117Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-09T09:52:59.0757308Z       "requiredStages": [
2026-06-09T09:52:59.0757398Z         "impl",
2026-06-09T09:52:59.0757484Z         "unit"
2026-06-09T09:52:59.0757570Z       ],
2026-06-09T09:52:59.0757647Z       "stages": {
2026-06-09T09:52:59.0757736Z         "doc": {
2026-06-09T09:52:59.0757827Z           "complete": false,
2026-06-09T09:52:59.0757919Z           "evidence": []
2026-06-09T09:52:59.0757999Z         },
2026-06-09T09:52:59.0758093Z         "impl": {
2026-06-09T09:52:59.0758188Z           "complete": true,
2026-06-09T09:52:59.0758274Z           "evidence": [
2026-06-09T09:52:59.0758359Z             {
2026-06-09T09:52:59.0758472Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0758568Z               "line": 252
2026-06-09T09:52:59.0758654Z             },
2026-06-09T09:52:59.0758734Z             {
2026-06-09T09:52:59.0758844Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0758931Z               "line": 297
2026-06-09T09:52:59.0759135Z             },
2026-06-09T09:52:59.0759212Z             {
2026-06-09T09:52:59.0759331Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0759416Z               "line": 309
2026-06-09T09:52:59.0759498Z             }
2026-06-09T09:52:59.0759579Z           ]
2026-06-09T09:52:59.0759660Z         },
2026-06-09T09:52:59.0759745Z         "int": {
2026-06-09T09:52:59.0759837Z           "complete": false,
2026-06-09T09:52:59.0759927Z           "evidence": []
2026-06-09T09:52:59.0760008Z         },
2026-06-09T09:52:59.0760093Z         "unit": {
2026-06-09T09:52:59.0760185Z           "complete": true,
2026-06-09T09:52:59.0760270Z           "evidence": [
2026-06-09T09:52:59.0760360Z             {
2026-06-09T09:52:59.0760467Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0760557Z               "line": 445
2026-06-09T09:52:59.0760646Z             },
2026-06-09T09:52:59.0760728Z             {
2026-06-09T09:52:59.0760839Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0760932Z               "line": 489
2026-06-09T09:52:59.0761018Z             }
2026-06-09T09:52:59.0761094Z           ]
2026-06-09T09:52:59.0761180Z         }
2026-06-09T09:52:59.0761268Z       }
2026-06-09T09:52:59.0761349Z     },
2026-06-09T09:52:59.0761435Z     {
2026-06-09T09:52:59.0761526Z       "id": "REQ-INFRA-1",
2026-06-09T09:52:59.0761701Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-09T09:52:59.0761793Z       "requiredStages": [],
2026-06-09T09:52:59.0761889Z       "stages": {
2026-06-09T09:52:59.0761973Z         "doc": {
2026-06-09T09:52:59.0762065Z           "complete": false,
2026-06-09T09:52:59.0762169Z           "evidence": []
2026-06-09T09:52:59.0762245Z         },
2026-06-09T09:52:59.0762336Z         "impl": {
2026-06-09T09:52:59.0762423Z           "complete": false,
2026-06-09T09:52:59.0762517Z           "evidence": []
2026-06-09T09:52:59.0762598Z         },
2026-06-09T09:52:59.0762679Z         "int": {
2026-06-09T09:52:59.0762785Z           "complete": false,
2026-06-09T09:52:59.0762879Z           "evidence": []
2026-06-09T09:52:59.0762961Z         },
2026-06-09T09:52:59.0763047Z         "unit": {
2026-06-09T09:52:59.0763142Z           "complete": false,
2026-06-09T09:52:59.0763227Z           "evidence": []
2026-06-09T09:52:59.0763309Z         }
2026-06-09T09:52:59.0763396Z       }
2026-06-09T09:52:59.0763475Z     },
2026-06-09T09:52:59.0763556Z     {
2026-06-09T09:52:59.0763651Z       "id": "REQ-INST-1",
2026-06-09T09:52:59.0763811Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-09T09:52:59.0763896Z       "requiredStages": [],
2026-06-09T09:52:59.0763973Z       "stages": {
2026-06-09T09:52:59.0764163Z         "doc": {
2026-06-09T09:52:59.0764253Z           "complete": false,
2026-06-09T09:52:59.0764346Z           "evidence": []
2026-06-09T09:52:59.0764426Z         },
2026-06-09T09:52:59.0764516Z         "impl": {
2026-06-09T09:52:59.0764607Z           "complete": false,
2026-06-09T09:52:59.0764793Z           "evidence": []
2026-06-09T09:52:59.0764883Z         },
2026-06-09T09:52:59.0764961Z         "int": {
2026-06-09T09:52:59.0765060Z           "complete": false,
2026-06-09T09:52:59.0765146Z           "evidence": []
2026-06-09T09:52:59.0765260Z         },
2026-06-09T09:52:59.0765370Z         "unit": {
2026-06-09T09:52:59.0765470Z           "complete": false,
2026-06-09T09:52:59.0765566Z           "evidence": []
2026-06-09T09:52:59.0765647Z         }
2026-06-09T09:52:59.0765732Z       }
2026-06-09T09:52:59.0765808Z     },
2026-06-09T09:52:59.0765895Z     {
2026-06-09T09:52:59.0765986Z       "id": "REQ-INST-10",
2026-06-09T09:52:59.0766205Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-09T09:52:59.0766310Z       "requiredStages": [
2026-06-09T09:52:59.0766394Z         "impl",
2026-06-09T09:52:59.0766479Z         "unit"
2026-06-09T09:52:59.0766561Z       ],
2026-06-09T09:52:59.0766652Z       "stages": {
2026-06-09T09:52:59.0766733Z         "doc": {
2026-06-09T09:52:59.0766837Z           "complete": false,
2026-06-09T09:52:59.0766924Z           "evidence": []
2026-06-09T09:52:59.0767005Z         },
2026-06-09T09:52:59.0767095Z         "impl": {
2026-06-09T09:52:59.0767181Z           "complete": true,
2026-06-09T09:52:59.0767272Z           "evidence": [
2026-06-09T09:52:59.0767358Z             {
2026-06-09T09:52:59.0767491Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0767582Z               "line": 600
2026-06-09T09:52:59.0767662Z             },
2026-06-09T09:52:59.0767748Z             {
2026-06-09T09:52:59.0767873Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0767972Z               "line": 677
2026-06-09T09:52:59.0768058Z             },
2026-06-09T09:52:59.0768140Z             {
2026-06-09T09:52:59.0768268Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T09:52:59.0768354Z               "line": 13
2026-06-09T09:52:59.0768440Z             },
2026-06-09T09:52:59.0768527Z             {
2026-06-09T09:52:59.0768649Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T09:52:59.0768739Z               "line": 67
2026-06-09T09:52:59.0768820Z             },
2026-06-09T09:52:59.0768910Z             {
2026-06-09T09:52:59.0769104Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.0769195Z               "line": 18
2026-06-09T09:52:59.0769281Z             },
2026-06-09T09:52:59.0769366Z             {
2026-06-09T09:52:59.0769476Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.0769562Z               "line": 444
2026-06-09T09:52:59.0769642Z             }
2026-06-09T09:52:59.0769719Z           ]
2026-06-09T09:52:59.0769810Z         },
2026-06-09T09:52:59.0769891Z         "int": {
2026-06-09T09:52:59.0769990Z           "complete": false,
2026-06-09T09:52:59.0770077Z           "evidence": []
2026-06-09T09:52:59.0770158Z         },
2026-06-09T09:52:59.0770239Z         "unit": {
2026-06-09T09:52:59.0770329Z           "complete": true,
2026-06-09T09:52:59.0770425Z           "evidence": [
2026-06-09T09:52:59.0770506Z             {
2026-06-09T09:52:59.0770624Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0770717Z               "line": 883
2026-06-09T09:52:59.0770797Z             },
2026-06-09T09:52:59.0770882Z             {
2026-06-09T09:52:59.0770997Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0771098Z               "line": 1212
2026-06-09T09:52:59.0771178Z             },
2026-06-09T09:52:59.0771264Z             {
2026-06-09T09:52:59.0771384Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0771474Z               "line": 1223
2026-06-09T09:52:59.0771668Z             },
2026-06-09T09:52:59.0771749Z             {
2026-06-09T09:52:59.0771866Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0771951Z               "line": 1239
2026-06-09T09:52:59.0772038Z             },
2026-06-09T09:52:59.0772125Z             {
2026-06-09T09:52:59.0772329Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0772424Z               "line": 1255
2026-06-09T09:52:59.0772505Z             },
2026-06-09T09:52:59.0772586Z             {
2026-06-09T09:52:59.0772692Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0772787Z               "line": 1277
2026-06-09T09:52:59.0772886Z             },
2026-06-09T09:52:59.0772978Z             {
2026-06-09T09:52:59.0773096Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0773182Z               "line": 1582
2026-06-09T09:52:59.0773264Z             },
2026-06-09T09:52:59.0773345Z             {
2026-06-09T09:52:59.0773459Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T09:52:59.0773549Z               "line": 130
2026-06-09T09:52:59.0773627Z             },
2026-06-09T09:52:59.0773711Z             {
2026-06-09T09:52:59.0773816Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T09:52:59.0773913Z               "line": 167
2026-06-09T09:52:59.0773994Z             },
2026-06-09T09:52:59.0774078Z             {
2026-06-09T09:52:59.0774191Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T09:52:59.0774273Z               "line": 175
2026-06-09T09:52:59.0774357Z             },
2026-06-09T09:52:59.0774438Z             {
2026-06-09T09:52:59.0774547Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-09T09:52:59.0774634Z               "line": 183
2026-06-09T09:52:59.0774714Z             },
2026-06-09T09:52:59.0774800Z             {
2026-06-09T09:52:59.0774901Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.0774991Z               "line": 895
2026-06-09T09:52:59.0775076Z             }
2026-06-09T09:52:59.0775162Z           ]
2026-06-09T09:52:59.0775244Z         }
2026-06-09T09:52:59.0775325Z       }
2026-06-09T09:52:59.0775410Z     },
2026-06-09T09:52:59.0775487Z     {
2026-06-09T09:52:59.0775582Z       "id": "REQ-INST-11",
2026-06-09T09:52:59.0775791Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-09T09:52:59.0775897Z       "requiredStages": [
2026-06-09T09:52:59.0775988Z         "impl",
2026-06-09T09:52:59.0776073Z         "unit"
2026-06-09T09:52:59.0776155Z       ],
2026-06-09T09:52:59.0776245Z       "stages": {
2026-06-09T09:52:59.0776330Z         "doc": {
2026-06-09T09:52:59.0776416Z           "complete": false,
2026-06-09T09:52:59.0776509Z           "evidence": []
2026-06-09T09:52:59.0776597Z         },
2026-06-09T09:52:59.0776679Z         "impl": {
2026-06-09T09:52:59.0776775Z           "complete": true,
2026-06-09T09:52:59.0776861Z           "evidence": [
2026-06-09T09:52:59.0776954Z             {
2026-06-09T09:52:59.0777068Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0777159Z               "line": 466
2026-06-09T09:52:59.0777246Z             },
2026-06-09T09:52:59.0777326Z             {
2026-06-09T09:52:59.0777455Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0777541Z               "line": 265
2026-06-09T09:52:59.0777631Z             },
2026-06-09T09:52:59.0777707Z             {
2026-06-09T09:52:59.0777827Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T09:52:59.0777918Z               "line": 59
2026-06-09T09:52:59.0777998Z             },
2026-06-09T09:52:59.0778085Z             {
2026-06-09T09:52:59.0778194Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0778284Z               "line": 4003
2026-06-09T09:52:59.0778366Z             },
2026-06-09T09:52:59.0778447Z             {
2026-06-09T09:52:59.0778556Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0778757Z               "line": 5102
2026-06-09T09:52:59.0778842Z             }
2026-06-09T09:52:59.0778923Z           ]
2026-06-09T09:52:59.0779091Z         },
2026-06-09T09:52:59.0779171Z         "int": {
2026-06-09T09:52:59.0779270Z           "complete": false,
2026-06-09T09:52:59.0779361Z           "evidence": []
2026-06-09T09:52:59.0779545Z         },
2026-06-09T09:52:59.0779630Z         "unit": {
2026-06-09T09:52:59.0779721Z           "complete": true,
2026-06-09T09:52:59.0779808Z           "evidence": [
2026-06-09T09:52:59.0779888Z             {
2026-06-09T09:52:59.0780008Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0780098Z               "line": 1382
2026-06-09T09:52:59.0780179Z             },
2026-06-09T09:52:59.0780259Z             {
2026-06-09T09:52:59.0780375Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0780465Z               "line": 1415
2026-06-09T09:52:59.0780541Z             },
2026-06-09T09:52:59.0780638Z             {
2026-06-09T09:52:59.0780761Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0780846Z               "line": 495
2026-06-09T09:52:59.0780932Z             },
2026-06-09T09:52:59.0781014Z             {
2026-06-09T09:52:59.0781128Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T09:52:59.0781218Z               "line": 160
2026-06-09T09:52:59.0781305Z             },
2026-06-09T09:52:59.0781390Z             {
2026-06-09T09:52:59.0781495Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T09:52:59.0781587Z               "line": 190
2026-06-09T09:52:59.0781663Z             },
2026-06-09T09:52:59.0781752Z             {
2026-06-09T09:52:59.0781863Z               "path": "crates/spt-store/src/rename.rs",
2026-06-09T09:52:59.0781954Z               "line": 225
2026-06-09T09:52:59.0782048Z             },
2026-06-09T09:52:59.0782128Z             {
2026-06-09T09:52:59.0782233Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0782323Z               "line": 5342
2026-06-09T09:52:59.0782412Z             }
2026-06-09T09:52:59.0782493Z           ]
2026-06-09T09:52:59.0782574Z         }
2026-06-09T09:52:59.0782660Z       }
2026-06-09T09:52:59.0782731Z     },
2026-06-09T09:52:59.0782822Z     {
2026-06-09T09:52:59.0782909Z       "id": "REQ-INST-12",
2026-06-09T09:52:59.0783204Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-09T09:52:59.0783303Z       "requiredStages": [
2026-06-09T09:52:59.0783394Z         "impl",
2026-06-09T09:52:59.0783485Z         "unit"
2026-06-09T09:52:59.0783567Z       ],
2026-06-09T09:52:59.0783656Z       "stages": {
2026-06-09T09:52:59.0783747Z         "doc": {
2026-06-09T09:52:59.0783838Z           "complete": false,
2026-06-09T09:52:59.0783929Z           "evidence": []
2026-06-09T09:52:59.0784019Z         },
2026-06-09T09:52:59.0784105Z         "impl": {
2026-06-09T09:52:59.0784191Z           "complete": true,
2026-06-09T09:52:59.0784290Z           "evidence": [
2026-06-09T09:52:59.0784376Z             {
2026-06-09T09:52:59.0784497Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0784582Z               "line": 518
2026-06-09T09:52:59.0784676Z             },
2026-06-09T09:52:59.0784761Z             {
2026-06-09T09:52:59.0784881Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0784978Z               "line": 611
2026-06-09T09:52:59.0785059Z             },
2026-06-09T09:52:59.0785136Z             {
2026-06-09T09:52:59.0785251Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0785341Z               "line": 691
2026-06-09T09:52:59.0785427Z             },
2026-06-09T09:52:59.0785508Z             {
2026-06-09T09:52:59.0785622Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0785707Z               "line": 96
2026-06-09T09:52:59.0785795Z             },
2026-06-09T09:52:59.0785880Z             {
2026-06-09T09:52:59.0785989Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0786185Z               "line": 269
2026-06-09T09:52:59.0786266Z             },
2026-06-09T09:52:59.0786351Z             {
2026-06-09T09:52:59.0786472Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0786562Z               "line": 135
2026-06-09T09:52:59.0786720Z             }
2026-06-09T09:52:59.0786800Z           ]
2026-06-09T09:52:59.0786891Z         },
2026-06-09T09:52:59.0786972Z         "int": {
2026-06-09T09:52:59.0787069Z           "complete": false,
2026-06-09T09:52:59.0787157Z           "evidence": []
2026-06-09T09:52:59.0787243Z         },
2026-06-09T09:52:59.0787331Z         "unit": {
2026-06-09T09:52:59.0787416Z           "complete": true,
2026-06-09T09:52:59.0787509Z           "evidence": [
2026-06-09T09:52:59.0787590Z             {
2026-06-09T09:52:59.0787705Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0787796Z               "line": 1457
2026-06-09T09:52:59.0787886Z             },
2026-06-09T09:52:59.0787972Z             {
2026-06-09T09:52:59.0788082Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0788172Z               "line": 1480
2026-06-09T09:52:59.0788257Z             },
2026-06-09T09:52:59.0788345Z             {
2026-06-09T09:52:59.0788454Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0788554Z               "line": 1517
2026-06-09T09:52:59.0788640Z             },
2026-06-09T09:52:59.0788721Z             {
2026-06-09T09:52:59.0788835Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0788921Z               "line": 457
2026-06-09T09:52:59.0789088Z             },
2026-06-09T09:52:59.0789174Z             {
2026-06-09T09:52:59.0789294Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0789384Z               "line": 172
2026-06-09T09:52:59.0789469Z             },
2026-06-09T09:52:59.0789555Z             {
2026-06-09T09:52:59.0789665Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0789765Z               "line": 193
2026-06-09T09:52:59.0789845Z             },
2026-06-09T09:52:59.0789936Z             {
2026-06-09T09:52:59.0790062Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0790147Z               "line": 219
2026-06-09T09:52:59.0790238Z             }
2026-06-09T09:52:59.0790320Z           ]
2026-06-09T09:52:59.0790405Z         }
2026-06-09T09:52:59.0790486Z       }
2026-06-09T09:52:59.0790573Z     },
2026-06-09T09:52:59.0790659Z     {
2026-06-09T09:52:59.0790753Z       "id": "REQ-INST-13",
2026-06-09T09:52:59.0790940Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-09T09:52:59.0791030Z       "requiredStages": [
2026-06-09T09:52:59.0791120Z         "impl",
2026-06-09T09:52:59.0791203Z         "unit"
2026-06-09T09:52:59.0791288Z       ],
2026-06-09T09:52:59.0791383Z       "stages": {
2026-06-09T09:52:59.0791464Z         "doc": {
2026-06-09T09:52:59.0791569Z           "complete": false,
2026-06-09T09:52:59.0791659Z           "evidence": []
2026-06-09T09:52:59.0791745Z         },
2026-06-09T09:52:59.0791827Z         "impl": {
2026-06-09T09:52:59.0791931Z           "complete": true,
2026-06-09T09:52:59.0792022Z           "evidence": [
2026-06-09T09:52:59.0792103Z             {
2026-06-09T09:52:59.0792228Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0792312Z               "line": 100
2026-06-09T09:52:59.0792398Z             },
2026-06-09T09:52:59.0792476Z             {
2026-06-09T09:52:59.0792603Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0792693Z               "line": 158
2026-06-09T09:52:59.0792774Z             }
2026-06-09T09:52:59.0792860Z           ]
2026-06-09T09:52:59.0792939Z         },
2026-06-09T09:52:59.0793024Z         "int": {
2026-06-09T09:52:59.0793120Z           "complete": false,
2026-06-09T09:52:59.0793206Z           "evidence": []
2026-06-09T09:52:59.0793292Z         },
2026-06-09T09:52:59.0793478Z         "unit": {
2026-06-09T09:52:59.0793578Z           "complete": true,
2026-06-09T09:52:59.0793663Z           "evidence": [
2026-06-09T09:52:59.0793740Z             {
2026-06-09T09:52:59.0793855Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0793935Z               "line": 248
2026-06-09T09:52:59.0794103Z             },
2026-06-09T09:52:59.0794188Z             {
2026-06-09T09:52:59.0794307Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-09T09:52:59.0794394Z               "line": 266
2026-06-09T09:52:59.0794480Z             }
2026-06-09T09:52:59.0794559Z           ]
2026-06-09T09:52:59.0794650Z         }
2026-06-09T09:52:59.0794737Z       }
2026-06-09T09:52:59.0794818Z     },
2026-06-09T09:52:59.0794903Z     {
2026-06-09T09:52:59.0794994Z       "id": "REQ-INST-14",
2026-06-09T09:52:59.0795369Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-09T09:52:59.0795473Z       "requiredStages": [
2026-06-09T09:52:59.0795558Z         "doc",
2026-06-09T09:52:59.0795648Z         "impl",
2026-06-09T09:52:59.0795720Z         "unit"
2026-06-09T09:52:59.0795807Z       ],
2026-06-09T09:52:59.0795891Z       "stages": {
2026-06-09T09:52:59.0795977Z         "doc": {
2026-06-09T09:52:59.0796069Z           "complete": true,
2026-06-09T09:52:59.0796163Z           "evidence": [
2026-06-09T09:52:59.0796249Z             {
2026-06-09T09:52:59.0796345Z               "path": "CONTEXT.md",
2026-06-09T09:52:59.0796435Z               "line": 425
2026-06-09T09:52:59.0796515Z             },
2026-06-09T09:52:59.0796607Z             {
2026-06-09T09:52:59.0796703Z               "path": "docs/STORAGE.md",
2026-06-09T09:52:59.0796798Z               "line": 49
2026-06-09T09:52:59.0796888Z             }
2026-06-09T09:52:59.0796965Z           ]
2026-06-09T09:52:59.0797055Z         },
2026-06-09T09:52:59.0797136Z         "impl": {
2026-06-09T09:52:59.0797236Z           "complete": true,
2026-06-09T09:52:59.0797323Z           "evidence": [
2026-06-09T09:52:59.0797412Z             {
2026-06-09T09:52:59.0797546Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0797633Z               "line": 388
2026-06-09T09:52:59.0797722Z             },
2026-06-09T09:52:59.0797808Z             {
2026-06-09T09:52:59.0797929Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0798023Z               "line": 330
2026-06-09T09:52:59.0798103Z             },
2026-06-09T09:52:59.0798193Z             {
2026-06-09T09:52:59.0798304Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0798398Z               "line": 211
2026-06-09T09:52:59.0798479Z             },
2026-06-09T09:52:59.0798570Z             {
2026-06-09T09:52:59.0798676Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0798761Z               "line": 1015
2026-06-09T09:52:59.0798837Z             }
2026-06-09T09:52:59.0798919Z           ]
2026-06-09T09:52:59.0799128Z         },
2026-06-09T09:52:59.0799210Z         "int": {
2026-06-09T09:52:59.0799314Z           "complete": false,
2026-06-09T09:52:59.0799414Z           "evidence": []
2026-06-09T09:52:59.0799491Z         },
2026-06-09T09:52:59.0799601Z         "unit": {
2026-06-09T09:52:59.0799691Z           "complete": true,
2026-06-09T09:52:59.0799791Z           "evidence": [
2026-06-09T09:52:59.0799869Z             {
2026-06-09T09:52:59.0800005Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0800096Z               "line": 1081
2026-06-09T09:52:59.0800179Z             },
2026-06-09T09:52:59.0800259Z             {
2026-06-09T09:52:59.0800390Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0800486Z               "line": 895
2026-06-09T09:52:59.0800571Z             },
2026-06-09T09:52:59.0800656Z             {
2026-06-09T09:52:59.0800774Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0800965Z               "line": 1153
2026-06-09T09:52:59.0801055Z             },
2026-06-09T09:52:59.0801133Z             {
2026-06-09T09:52:59.0801247Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0801337Z               "line": 463
2026-06-09T09:52:59.0801418Z             },
2026-06-09T09:52:59.0801505Z             {
2026-06-09T09:52:59.0801699Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0801786Z               "line": 5418
2026-06-09T09:52:59.0801872Z             }
2026-06-09T09:52:59.0801957Z           ]
2026-06-09T09:52:59.0802038Z         }
2026-06-09T09:52:59.0802120Z       }
2026-06-09T09:52:59.0802205Z     },
2026-06-09T09:52:59.0802286Z     {
2026-06-09T09:52:59.0802382Z       "id": "REQ-INST-15",
2026-06-09T09:52:59.0803069Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-09T09:52:59.0803173Z       "requiredStages": [
2026-06-09T09:52:59.0803267Z         "doc",
2026-06-09T09:52:59.0803353Z         "impl",
2026-06-09T09:52:59.0803438Z         "unit"
2026-06-09T09:52:59.0803518Z       ],
2026-06-09T09:52:59.0803608Z       "stages": {
2026-06-09T09:52:59.0803695Z         "doc": {
2026-06-09T09:52:59.0803785Z           "complete": true,
2026-06-09T09:52:59.0803875Z           "evidence": [
2026-06-09T09:52:59.0803956Z             {
2026-06-09T09:52:59.0804119Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-09T09:52:59.0804209Z               "line": 3
2026-06-09T09:52:59.0804295Z             }
2026-06-09T09:52:59.0804377Z           ]
2026-06-09T09:52:59.0804472Z         },
2026-06-09T09:52:59.0804556Z         "impl": {
2026-06-09T09:52:59.0804649Z           "complete": true,
2026-06-09T09:52:59.0804743Z           "evidence": [
2026-06-09T09:52:59.0804824Z             {
2026-06-09T09:52:59.0804959Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0805044Z               "line": 337
2026-06-09T09:52:59.0805129Z             },
2026-06-09T09:52:59.0805220Z             {
2026-06-09T09:52:59.0805331Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.0805425Z               "line": 60
2026-06-09T09:52:59.0805506Z             },
2026-06-09T09:52:59.0805598Z             {
2026-06-09T09:52:59.0805721Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0805810Z               "line": 336
2026-06-09T09:52:59.0805896Z             },
2026-06-09T09:52:59.0805977Z             {
2026-06-09T09:52:59.0806103Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0806189Z               "line": 385
2026-06-09T09:52:59.0806280Z             },
2026-06-09T09:52:59.0806348Z             {
2026-06-09T09:52:59.0806465Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0806552Z               "line": 19
2026-06-09T09:52:59.0806634Z             },
2026-06-09T09:52:59.0806724Z             {
2026-06-09T09:52:59.0806828Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0806920Z               "line": 70
2026-06-09T09:52:59.0807000Z             },
2026-06-09T09:52:59.0807095Z             {
2026-06-09T09:52:59.0807210Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0807296Z               "line": 96
2026-06-09T09:52:59.0807386Z             },
2026-06-09T09:52:59.0807467Z             {
2026-06-09T09:52:59.0807578Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0807663Z               "line": 121
2026-06-09T09:52:59.0807753Z             },
2026-06-09T09:52:59.0807835Z             {
2026-06-09T09:52:59.0807940Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0808030Z               "line": 172
2026-06-09T09:52:59.0808111Z             },
2026-06-09T09:52:59.0808193Z             {
2026-06-09T09:52:59.0808412Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0808513Z               "line": 143
2026-06-09T09:52:59.0808607Z             },
2026-06-09T09:52:59.0808687Z             {
2026-06-09T09:52:59.0808792Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0808878Z               "line": 907
2026-06-09T09:52:59.0809116Z             }
2026-06-09T09:52:59.0809198Z           ]
2026-06-09T09:52:59.0809292Z         },
2026-06-09T09:52:59.0809382Z         "int": {
2026-06-09T09:52:59.0809475Z           "complete": false,
2026-06-09T09:52:59.0809565Z           "evidence": []
2026-06-09T09:52:59.0809645Z         },
2026-06-09T09:52:59.0809731Z         "unit": {
2026-06-09T09:52:59.0809818Z           "complete": true,
2026-06-09T09:52:59.0809917Z           "evidence": [
2026-06-09T09:52:59.0810003Z             {
2026-06-09T09:52:59.0810133Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0810222Z               "line": 545
2026-06-09T09:52:59.0810313Z             },
2026-06-09T09:52:59.0810395Z             {
2026-06-09T09:52:59.0810518Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.0810613Z               "line": 606
2026-06-09T09:52:59.0810700Z             },
2026-06-09T09:52:59.0810786Z             {
2026-06-09T09:52:59.0810899Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0810988Z               "line": 213
2026-06-09T09:52:59.0811080Z             },
2026-06-09T09:52:59.0811164Z             {
2026-06-09T09:52:59.0811268Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0811354Z               "line": 249
2026-06-09T09:52:59.0811436Z             },
2026-06-09T09:52:59.0811521Z             {
2026-06-09T09:52:59.0811625Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0811717Z               "line": 262
2026-06-09T09:52:59.0811803Z             },
2026-06-09T09:52:59.0811883Z             {
2026-06-09T09:52:59.0811993Z               "path": "crates/spt-store/src/home.rs",
2026-06-09T09:52:59.0812084Z               "line": 338
2026-06-09T09:52:59.0812173Z             },
2026-06-09T09:52:59.0812254Z             {
2026-06-09T09:52:59.0812375Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.0812465Z               "line": 496
2026-06-09T09:52:59.0812550Z             },
2026-06-09T09:52:59.0812637Z             {
2026-06-09T09:52:59.0812736Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0812832Z               "line": 5355
2026-06-09T09:52:59.0812913Z             },
2026-06-09T09:52:59.0813000Z             {
2026-06-09T09:52:59.0813103Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0813190Z               "line": 6729
2026-06-09T09:52:59.0813281Z             }
2026-06-09T09:52:59.0813362Z           ]
2026-06-09T09:52:59.0813447Z         }
2026-06-09T09:52:59.0813528Z       }
2026-06-09T09:52:59.0813611Z     },
2026-06-09T09:52:59.0813700Z     {
2026-06-09T09:52:59.0813790Z       "id": "REQ-INST-2",
2026-06-09T09:52:59.0813923Z       "title": "Per-node files, synced Psyche mind",
2026-06-09T09:52:59.0814012Z       "requiredStages": [
2026-06-09T09:52:59.0814102Z         "impl",
2026-06-09T09:52:59.0814182Z         "unit"
2026-06-09T09:52:59.0814274Z       ],
2026-06-09T09:52:59.0814360Z       "stages": {
2026-06-09T09:52:59.0814450Z         "doc": {
2026-06-09T09:52:59.0814545Z           "complete": false,
2026-06-09T09:52:59.0814632Z           "evidence": []
2026-06-09T09:52:59.0814717Z         },
2026-06-09T09:52:59.0814797Z         "impl": {
2026-06-09T09:52:59.0814894Z           "complete": true,
2026-06-09T09:52:59.0814984Z           "evidence": [
2026-06-09T09:52:59.0817407Z             {
2026-06-09T09:52:59.0817575Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0817669Z               "line": 86
2026-06-09T09:52:59.0817761Z             },
2026-06-09T09:52:59.0817842Z             {
2026-06-09T09:52:59.0817970Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0818213Z               "line": 28
2026-06-09T09:52:59.0818299Z             },
2026-06-09T09:52:59.0818386Z             {
2026-06-09T09:52:59.0818495Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0818590Z               "line": 74
2026-06-09T09:52:59.0818671Z             },
2026-06-09T09:52:59.0818857Z             {
2026-06-09T09:52:59.0819049Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0819130Z               "line": 96
2026-06-09T09:52:59.0819213Z             },
2026-06-09T09:52:59.0819308Z             {
2026-06-09T09:52:59.0819448Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T09:52:59.0819538Z               "line": 81
2026-06-09T09:52:59.0819623Z             },
2026-06-09T09:52:59.0819705Z             {
2026-06-09T09:52:59.0819825Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-09T09:52:59.0819919Z               "line": 118
2026-06-09T09:52:59.0820001Z             }
2026-06-09T09:52:59.0820091Z           ]
2026-06-09T09:52:59.0820167Z         },
2026-06-09T09:52:59.0820272Z         "int": {
2026-06-09T09:52:59.0820378Z           "complete": false,
2026-06-09T09:52:59.0820463Z           "evidence": []
2026-06-09T09:52:59.0820548Z         },
2026-06-09T09:52:59.0820631Z         "unit": {
2026-06-09T09:52:59.0820730Z           "complete": true,
2026-06-09T09:52:59.0820816Z           "evidence": [
2026-06-09T09:52:59.0820902Z             {
2026-06-09T09:52:59.0821017Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-09T09:52:59.0821106Z               "line": 212
2026-06-09T09:52:59.0821192Z             },
2026-06-09T09:52:59.0821313Z             {
2026-06-09T09:52:59.0821430Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T09:52:59.0821520Z               "line": 258
2026-06-09T09:52:59.0821606Z             }
2026-06-09T09:52:59.0821696Z           ]
2026-06-09T09:52:59.0821766Z         }
2026-06-09T09:52:59.0821842Z       }
2026-06-09T09:52:59.0821923Z     },
2026-06-09T09:52:59.0822005Z     {
2026-06-09T09:52:59.0822095Z       "id": "REQ-INST-3",
2026-06-09T09:52:59.0822248Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-09T09:52:59.0822381Z       "requiredStages": [
2026-06-09T09:52:59.0822472Z         "doc",
2026-06-09T09:52:59.0822563Z         "impl",
2026-06-09T09:52:59.0822653Z         "unit"
2026-06-09T09:52:59.0822738Z       ],
2026-06-09T09:52:59.0822824Z       "stages": {
2026-06-09T09:52:59.0822916Z         "doc": {
2026-06-09T09:52:59.0823007Z           "complete": true,
2026-06-09T09:52:59.0823091Z           "evidence": [
2026-06-09T09:52:59.0823173Z             {
2026-06-09T09:52:59.0823292Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-09T09:52:59.0823392Z               "line": 3
2026-06-09T09:52:59.0823478Z             }
2026-06-09T09:52:59.0823565Z           ]
2026-06-09T09:52:59.0823654Z         },
2026-06-09T09:52:59.0823735Z         "impl": {
2026-06-09T09:52:59.0823832Z           "complete": true,
2026-06-09T09:52:59.0823922Z           "evidence": [
2026-06-09T09:52:59.0824002Z             {
2026-06-09T09:52:59.0824118Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T09:52:59.0824213Z               "line": 70
2026-06-09T09:52:59.0824317Z             },
2026-06-09T09:52:59.0824401Z             {
2026-06-09T09:52:59.0824531Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.0824619Z               "line": 480
2026-06-09T09:52:59.0824709Z             },
2026-06-09T09:52:59.0824795Z             {
2026-06-09T09:52:59.0824920Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0825015Z               "line": 202
2026-06-09T09:52:59.0825086Z             },
2026-06-09T09:52:59.0825173Z             {
2026-06-09T09:52:59.0825315Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0825415Z               "line": 291
2026-06-09T09:52:59.0825487Z             },
2026-06-09T09:52:59.0825578Z             {
2026-06-09T09:52:59.0825983Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0826069Z               "line": 325
2026-06-09T09:52:59.0826169Z             },
2026-06-09T09:52:59.0826264Z             {
2026-06-09T09:52:59.0826394Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0826569Z               "line": 341
2026-06-09T09:52:59.0826650Z             },
2026-06-09T09:52:59.0826738Z             {
2026-06-09T09:52:59.0826850Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0826968Z               "line": 218
2026-06-09T09:52:59.0827045Z             },
2026-06-09T09:52:59.0827139Z             {
2026-06-09T09:52:59.0827256Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0827348Z               "line": 374
2026-06-09T09:52:59.0827435Z             },
2026-06-09T09:52:59.0827515Z             {
2026-06-09T09:52:59.0827629Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0827701Z               "line": 45
2026-06-09T09:52:59.0827791Z             },
2026-06-09T09:52:59.0827877Z             {
2026-06-09T09:52:59.0827992Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0828087Z               "line": 114
2026-06-09T09:52:59.0828168Z             },
2026-06-09T09:52:59.0828258Z             {
2026-06-09T09:52:59.0828369Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0828458Z               "line": 152
2026-06-09T09:52:59.0828535Z             },
2026-06-09T09:52:59.0828616Z             {
2026-06-09T09:52:59.0828731Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0828817Z               "line": 168
2026-06-09T09:52:59.0828902Z             },
2026-06-09T09:52:59.0829055Z             {
2026-06-09T09:52:59.0829174Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0829266Z               "line": 178
2026-06-09T09:52:59.0829347Z             },
2026-06-09T09:52:59.0829440Z             {
2026-06-09T09:52:59.0829556Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0829647Z               "line": 210
2026-06-09T09:52:59.0829727Z             },
2026-06-09T09:52:59.0829807Z             {
2026-06-09T09:52:59.0829922Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0830008Z               "line": 287
2026-06-09T09:52:59.0830098Z             },
2026-06-09T09:52:59.0830179Z             {
2026-06-09T09:52:59.0830295Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0830380Z               "line": 311
2026-06-09T09:52:59.0830465Z             },
2026-06-09T09:52:59.0830547Z             {
2026-06-09T09:52:59.0830656Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0830737Z               "line": 387
2026-06-09T09:52:59.0830818Z             },
2026-06-09T09:52:59.0830905Z             {
2026-06-09T09:52:59.0831018Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0831118Z               "line": 436
2026-06-09T09:52:59.0831205Z             },
2026-06-09T09:52:59.0831286Z             {
2026-06-09T09:52:59.0831404Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-09T09:52:59.0831486Z               "line": 37
2026-06-09T09:52:59.0831553Z             },
2026-06-09T09:52:59.0831643Z             {
2026-06-09T09:52:59.0831762Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0831854Z               "line": 62
2026-06-09T09:52:59.0831939Z             },
2026-06-09T09:52:59.0832023Z             {
2026-06-09T09:52:59.0832133Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0832229Z               "line": 190
2026-06-09T09:52:59.0832307Z             },
2026-06-09T09:52:59.0832388Z             {
2026-06-09T09:52:59.0832498Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0832585Z               "line": 1163
2026-06-09T09:52:59.0832679Z             }
2026-06-09T09:52:59.0832870Z           ]
2026-06-09T09:52:59.0832956Z         },
2026-06-09T09:52:59.0833046Z         "int": {
2026-06-09T09:52:59.0833133Z           "complete": false,
2026-06-09T09:52:59.0833218Z           "evidence": []
2026-06-09T09:52:59.0833298Z         },
2026-06-09T09:52:59.0833384Z         "unit": {
2026-06-09T09:52:59.0833476Z           "complete": true,
2026-06-09T09:52:59.0833685Z           "evidence": [
2026-06-09T09:52:59.0833772Z             {
2026-06-09T09:52:59.0833895Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.0833981Z               "line": 360
2026-06-09T09:52:59.0834063Z             },
2026-06-09T09:52:59.0834148Z             {
2026-06-09T09:52:59.0834267Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0834358Z               "line": 664
2026-06-09T09:52:59.0834449Z             },
2026-06-09T09:52:59.0834533Z             {
2026-06-09T09:52:59.0834653Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0834740Z               "line": 721
2026-06-09T09:52:59.0834820Z             },
2026-06-09T09:52:59.0834895Z             {
2026-06-09T09:52:59.0835024Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0835123Z               "line": 1182
2026-06-09T09:52:59.0835203Z             },
2026-06-09T09:52:59.0835302Z             {
2026-06-09T09:52:59.0835423Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0835513Z               "line": 1322
2026-06-09T09:52:59.0835594Z             },
2026-06-09T09:52:59.0835675Z             {
2026-06-09T09:52:59.0835795Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0835884Z               "line": 447
2026-06-09T09:52:59.0835971Z             },
2026-06-09T09:52:59.0836052Z             {
2026-06-09T09:52:59.0836171Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0836261Z               "line": 483
2026-06-09T09:52:59.0836348Z             },
2026-06-09T09:52:59.0836438Z             {
2026-06-09T09:52:59.0836552Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0836644Z               "line": 538
2026-06-09T09:52:59.0836729Z             },
2026-06-09T09:52:59.0836814Z             {
2026-06-09T09:52:59.0836930Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0837025Z               "line": 695
2026-06-09T09:52:59.0837115Z             },
2026-06-09T09:52:59.0837196Z             {
2026-06-09T09:52:59.0837303Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0837382Z               "line": 929
2026-06-09T09:52:59.0837472Z             },
2026-06-09T09:52:59.0837552Z             {
2026-06-09T09:52:59.0837662Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0837751Z               "line": 943
2026-06-09T09:52:59.0837836Z             },
2026-06-09T09:52:59.0837922Z             {
2026-06-09T09:52:59.0838038Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0838132Z               "line": 1193
2026-06-09T09:52:59.0838213Z             },
2026-06-09T09:52:59.0838295Z             {
2026-06-09T09:52:59.0838404Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.0838489Z               "line": 413
2026-06-09T09:52:59.0838576Z             },
2026-06-09T09:52:59.0838662Z             {
2026-06-09T09:52:59.0838771Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0838862Z               "line": 5379
2026-06-09T09:52:59.0839028Z             }
2026-06-09T09:52:59.0839118Z           ]
2026-06-09T09:52:59.0839201Z         }
2026-06-09T09:52:59.0839291Z       }
2026-06-09T09:52:59.0839372Z     },
2026-06-09T09:52:59.0839462Z     {
2026-06-09T09:52:59.0839558Z       "id": "REQ-INST-4",
2026-06-09T09:52:59.0839729Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-09T09:52:59.0839816Z       "requiredStages": [
2026-06-09T09:52:59.0839897Z         "impl",
2026-06-09T09:52:59.0840087Z         "unit"
2026-06-09T09:52:59.0840170Z       ],
2026-06-09T09:52:59.0840259Z       "stages": {
2026-06-09T09:52:59.0840353Z         "doc": {
2026-06-09T09:52:59.0840443Z           "complete": false,
2026-06-09T09:52:59.0840535Z           "evidence": []
2026-06-09T09:52:59.0840616Z         },
2026-06-09T09:52:59.0840691Z         "impl": {
2026-06-09T09:52:59.0840874Z           "complete": true,
2026-06-09T09:52:59.0840964Z           "evidence": [
2026-06-09T09:52:59.0841049Z             {
2026-06-09T09:52:59.0841169Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0841260Z               "line": 292
2026-06-09T09:52:59.0841344Z             },
2026-06-09T09:52:59.0841436Z             {
2026-06-09T09:52:59.0841550Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0841640Z               "line": 202
2026-06-09T09:52:59.0841726Z             },
2026-06-09T09:52:59.0841808Z             {
2026-06-09T09:52:59.0841927Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0842017Z               "line": 234
2026-06-09T09:52:59.0842109Z             },
2026-06-09T09:52:59.0842189Z             {
2026-06-09T09:52:59.0842293Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0842380Z               "line": 274
2026-06-09T09:52:59.0842466Z             }
2026-06-09T09:52:59.0842555Z           ]
2026-06-09T09:52:59.0842636Z         },
2026-06-09T09:52:59.0842726Z         "int": {
2026-06-09T09:52:59.0842826Z           "complete": false,
2026-06-09T09:52:59.0842920Z           "evidence": []
2026-06-09T09:52:59.0843010Z         },
2026-06-09T09:52:59.0843087Z         "unit": {
2026-06-09T09:52:59.0843173Z           "complete": true,
2026-06-09T09:52:59.0843258Z           "evidence": [
2026-06-09T09:52:59.0843344Z             {
2026-06-09T09:52:59.0843463Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.0843558Z               "line": 716
2026-06-09T09:52:59.0843639Z             },
2026-06-09T09:52:59.0843727Z             {
2026-06-09T09:52:59.0843850Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0843925Z               "line": 559
2026-06-09T09:52:59.0844003Z             },
2026-06-09T09:52:59.0844084Z             {
2026-06-09T09:52:59.0844202Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0844298Z               "line": 666
2026-06-09T09:52:59.0844385Z             },
2026-06-09T09:52:59.0844475Z             {
2026-06-09T09:52:59.0844584Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0844676Z               "line": 748
2026-06-09T09:52:59.0844755Z             }
2026-06-09T09:52:59.0844841Z           ]
2026-06-09T09:52:59.0844928Z         }
2026-06-09T09:52:59.0845009Z       }
2026-06-09T09:52:59.0845098Z     },
2026-06-09T09:52:59.0845185Z     {
2026-06-09T09:52:59.0845276Z       "id": "REQ-INST-5",
2026-06-09T09:52:59.0845455Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-09T09:52:59.0845545Z       "requiredStages": [
2026-06-09T09:52:59.0845627Z         "impl",
2026-06-09T09:52:59.0845712Z         "unit",
2026-06-09T09:52:59.0845806Z         "int"
2026-06-09T09:52:59.0845887Z       ],
2026-06-09T09:52:59.0845973Z       "stages": {
2026-06-09T09:52:59.0846064Z         "doc": {
2026-06-09T09:52:59.0846172Z           "complete": false,
2026-06-09T09:52:59.0846265Z           "evidence": []
2026-06-09T09:52:59.0846345Z         },
2026-06-09T09:52:59.0846420Z         "impl": {
2026-06-09T09:52:59.0846511Z           "complete": true,
2026-06-09T09:52:59.0846599Z           "evidence": [
2026-06-09T09:52:59.0846679Z             {
2026-06-09T09:52:59.0846807Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0846899Z               "line": 41
2026-06-09T09:52:59.0846979Z             },
2026-06-09T09:52:59.0847069Z             {
2026-06-09T09:52:59.0847180Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0847261Z               "line": 68
2026-06-09T09:52:59.0847437Z             },
2026-06-09T09:52:59.0847524Z             {
2026-06-09T09:52:59.0847641Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0847728Z               "line": 99
2026-06-09T09:52:59.0847814Z             },
2026-06-09T09:52:59.0847895Z             {
2026-06-09T09:52:59.0848065Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0848150Z               "line": 183
2026-06-09T09:52:59.0848241Z             },
2026-06-09T09:52:59.0848330Z             {
2026-06-09T09:52:59.0848434Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0848530Z               "line": 314
2026-06-09T09:52:59.0848616Z             }
2026-06-09T09:52:59.0848711Z           ]
2026-06-09T09:52:59.0848792Z         },
2026-06-09T09:52:59.0848874Z         "int": {
2026-06-09T09:52:59.0849030Z           "complete": true,
2026-06-09T09:52:59.0849112Z           "evidence": [
2026-06-09T09:52:59.0849198Z             {
2026-06-09T09:52:59.0849321Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.0849417Z               "line": 156
2026-06-09T09:52:59.0849498Z             },
2026-06-09T09:52:59.0849588Z             {
2026-06-09T09:52:59.0849703Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-09T09:52:59.0849794Z               "line": 102
2026-06-09T09:52:59.0849884Z             },
2026-06-09T09:52:59.0849960Z             {
2026-06-09T09:52:59.0850086Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0850180Z               "line": 637
2026-06-09T09:52:59.0850261Z             },
2026-06-09T09:52:59.0850347Z             {
2026-06-09T09:52:59.0850457Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0850551Z               "line": 974
2026-06-09T09:52:59.0850637Z             }
2026-06-09T09:52:59.0850730Z           ]
2026-06-09T09:52:59.0850828Z         },
2026-06-09T09:52:59.0850913Z         "unit": {
2026-06-09T09:52:59.0851027Z           "complete": true,
2026-06-09T09:52:59.0851119Z           "evidence": [
2026-06-09T09:52:59.0851214Z             {
2026-06-09T09:52:59.0851323Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0851429Z               "line": 531
2026-06-09T09:52:59.0851528Z             },
2026-06-09T09:52:59.0851623Z             {
2026-06-09T09:52:59.0851748Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.0851839Z               "line": 574
2026-06-09T09:52:59.0851948Z             },
2026-06-09T09:52:59.0852044Z             {
2026-06-09T09:52:59.0852186Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T09:52:59.0852282Z               "line": 219
2026-06-09T09:52:59.0852359Z             }
2026-06-09T09:52:59.0852458Z           ]
2026-06-09T09:52:59.0852548Z         }
2026-06-09T09:52:59.0852650Z       }
2026-06-09T09:52:59.0852740Z     },
2026-06-09T09:52:59.0852840Z     {
2026-06-09T09:52:59.0852950Z       "id": "REQ-INST-6",
2026-06-09T09:52:59.0853143Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-09T09:52:59.0853258Z       "requiredStages": [
2026-06-09T09:52:59.0853349Z         "impl",
2026-06-09T09:52:59.0853447Z         "unit",
2026-06-09T09:52:59.0853542Z         "int"
2026-06-09T09:52:59.0853642Z       ],
2026-06-09T09:52:59.0853747Z       "stages": {
2026-06-09T09:52:59.0853832Z         "doc": {
2026-06-09T09:52:59.0853938Z           "complete": true,
2026-06-09T09:52:59.0854033Z           "evidence": [
2026-06-09T09:52:59.0854142Z             {
2026-06-09T09:52:59.0854248Z               "path": "docs/DEFERRED.md",
2026-06-09T09:52:59.0854357Z               "line": 13
2026-06-09T09:52:59.0854457Z             }
2026-06-09T09:52:59.0854549Z           ]
2026-06-09T09:52:59.0854639Z         },
2026-06-09T09:52:59.0854729Z         "impl": {
2026-06-09T09:52:59.0854838Z           "complete": true,
2026-06-09T09:52:59.0854940Z           "evidence": [
2026-06-09T09:52:59.0855049Z             {
2026-06-09T09:52:59.0855311Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.0855397Z               "line": 391
2026-06-09T09:52:59.0855508Z             },
2026-06-09T09:52:59.0855598Z             {
2026-06-09T09:52:59.0855730Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T09:52:59.0855932Z               "line": 27
2026-06-09T09:52:59.0856035Z             },
2026-06-09T09:52:59.0856154Z             {
2026-06-09T09:52:59.0856272Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T09:52:59.0856366Z               "line": 73
2026-06-09T09:52:59.0856452Z             },
2026-06-09T09:52:59.0856538Z             {
2026-06-09T09:52:59.0856661Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-09T09:52:59.0856776Z               "line": 182
2026-06-09T09:52:59.0856886Z             },
2026-06-09T09:52:59.0856962Z             {
2026-06-09T09:52:59.0857106Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0857205Z               "line": 424
2026-06-09T09:52:59.0857314Z             },
2026-06-09T09:52:59.0857396Z             {
2026-06-09T09:52:59.0857529Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-09T09:52:59.0857634Z               "line": 31
2026-06-09T09:52:59.0857730Z             },
2026-06-09T09:52:59.0857826Z             {
2026-06-09T09:52:59.0857953Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.0858060Z               "line": 182
2026-06-09T09:52:59.0858159Z             },
2026-06-09T09:52:59.0858259Z             {
2026-06-09T09:52:59.0858398Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0858493Z               "line": 81
2026-06-09T09:52:59.0858602Z             },
2026-06-09T09:52:59.0858692Z             {
2026-06-09T09:52:59.0858819Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0858914Z               "line": 1164
2026-06-09T09:52:59.0859100Z             },
2026-06-09T09:52:59.0859204Z             {
2026-06-09T09:52:59.0859333Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.0859439Z               "line": 179
2026-06-09T09:52:59.0859529Z             },
2026-06-09T09:52:59.0859628Z             {
2026-06-09T09:52:59.0859734Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.0859848Z               "line": 215
2026-06-09T09:52:59.0859958Z             }
2026-06-09T09:52:59.0860054Z           ]
2026-06-09T09:52:59.0860153Z         },
2026-06-09T09:52:59.0860248Z         "int": {
2026-06-09T09:52:59.0860359Z           "complete": true,
2026-06-09T09:52:59.0860454Z           "evidence": [
2026-06-09T09:52:59.0860554Z             {
2026-06-09T09:52:59.0860693Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0860792Z               "line": 651
2026-06-09T09:52:59.0860892Z             },
2026-06-09T09:52:59.0860985Z             {
2026-06-09T09:52:59.0861121Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0861237Z               "line": 1019
2026-06-09T09:52:59.0861327Z             },
2026-06-09T09:52:59.0861440Z             {
2026-06-09T09:52:59.0861554Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.0861670Z               "line": 725
2026-06-09T09:52:59.0861769Z             }
2026-06-09T09:52:59.0861859Z           ]
2026-06-09T09:52:59.0861955Z         },
2026-06-09T09:52:59.0862041Z         "unit": {
2026-06-09T09:52:59.0862140Z           "complete": true,
2026-06-09T09:52:59.0862227Z           "evidence": [
2026-06-09T09:52:59.0862327Z             {
2026-06-09T09:52:59.0862451Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.0862551Z               "line": 660
2026-06-09T09:52:59.0862642Z             },
2026-06-09T09:52:59.0862728Z             {
2026-06-09T09:52:59.0862871Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.0862962Z               "line": 897
2026-06-09T09:52:59.0863061Z             },
2026-06-09T09:52:59.0863152Z             {
2026-06-09T09:52:59.0863400Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-09T09:52:59.0863505Z               "line": 66
2026-06-09T09:52:59.0863596Z             },
2026-06-09T09:52:59.0863699Z             {
2026-06-09T09:52:59.0863813Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.0864059Z               "line": 272
2026-06-09T09:52:59.0864145Z             },
2026-06-09T09:52:59.0864250Z             {
2026-06-09T09:52:59.0864378Z               "path": "crates/spt/src/api/worker.rs",
2026-06-09T09:52:59.0864469Z               "line": 201
2026-06-09T09:52:59.0864579Z             }
2026-06-09T09:52:59.0864665Z           ]
2026-06-09T09:52:59.0864764Z         }
2026-06-09T09:52:59.0864851Z       }
2026-06-09T09:52:59.0864951Z     },
2026-06-09T09:52:59.0865050Z     {
2026-06-09T09:52:59.0865147Z       "id": "REQ-INST-7",
2026-06-09T09:52:59.0865350Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-09T09:52:59.0865500Z       "requiredStages": [
2026-06-09T09:52:59.0865609Z         "impl",
2026-06-09T09:52:59.0865699Z         "unit",
2026-06-09T09:52:59.0865800Z         "int"
2026-06-09T09:52:59.0865899Z       ],
2026-06-09T09:52:59.0865990Z       "stages": {
2026-06-09T09:52:59.0866111Z         "doc": {
2026-06-09T09:52:59.0866209Z           "complete": false,
2026-06-09T09:52:59.0866319Z           "evidence": []
2026-06-09T09:52:59.0866406Z         },
2026-06-09T09:52:59.0866506Z         "impl": {
2026-06-09T09:52:59.0866609Z           "complete": true,
2026-06-09T09:52:59.0866704Z           "evidence": [
2026-06-09T09:52:59.0866804Z             {
2026-06-09T09:52:59.0866930Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.0867041Z               "line": 436
2026-06-09T09:52:59.0867132Z             },
2026-06-09T09:52:59.0867235Z             {
2026-06-09T09:52:59.0867370Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0867465Z               "line": 42
2026-06-09T09:52:59.0867564Z             },
2026-06-09T09:52:59.0867656Z             {
2026-06-09T09:52:59.0867799Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0867893Z               "line": 27
2026-06-09T09:52:59.0867995Z             },
2026-06-09T09:52:59.0868094Z             {
2026-06-09T09:52:59.0868223Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0868334Z               "line": 191
2026-06-09T09:52:59.0868419Z             },
2026-06-09T09:52:59.0868518Z             {
2026-06-09T09:52:59.0868644Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0868752Z               "line": 328
2026-06-09T09:52:59.0868852Z             },
2026-06-09T09:52:59.0868930Z             {
2026-06-09T09:52:59.0869171Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-09T09:52:59.0869266Z               "line": 59
2026-06-09T09:52:59.0869375Z             },
2026-06-09T09:52:59.0869464Z             {
2026-06-09T09:52:59.0869602Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0869713Z               "line": 41
2026-06-09T09:52:59.0869807Z             },
2026-06-09T09:52:59.0869908Z             {
2026-06-09T09:52:59.0870037Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0870141Z               "line": 27
2026-06-09T09:52:59.0870232Z             },
2026-06-09T09:52:59.0870337Z             {
2026-06-09T09:52:59.0870480Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0870576Z               "line": 119
2026-06-09T09:52:59.0870675Z             },
2026-06-09T09:52:59.0870765Z             {
2026-06-09T09:52:59.0870910Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0871019Z               "line": 134
2026-06-09T09:52:59.0871109Z             },
2026-06-09T09:52:59.0871220Z             {
2026-06-09T09:52:59.0871347Z               "path": "crates/spt-store/src/registry.rs",
2026-06-09T09:52:59.0871452Z               "line": 139
2026-06-09T09:52:59.0871667Z             }
2026-06-09T09:52:59.0871777Z           ]
2026-06-09T09:52:59.0871883Z         },
2026-06-09T09:52:59.0871967Z         "int": {
2026-06-09T09:52:59.0872085Z           "complete": true,
2026-06-09T09:52:59.0872177Z           "evidence": [
2026-06-09T09:52:59.0872282Z             {
2026-06-09T09:52:59.0872511Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-09T09:52:59.0872620Z               "line": 102
2026-06-09T09:52:59.0872724Z             },
2026-06-09T09:52:59.0872812Z             {
2026-06-09T09:52:59.0872949Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0873043Z               "line": 595
2026-06-09T09:52:59.0873155Z             },
2026-06-09T09:52:59.0873245Z             {
2026-06-09T09:52:59.0873368Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0873470Z               "line": 869
2026-06-09T09:52:59.0873554Z             }
2026-06-09T09:52:59.0873645Z           ]
2026-06-09T09:52:59.0873727Z         },
2026-06-09T09:52:59.0873817Z         "unit": {
2026-06-09T09:52:59.0873912Z           "complete": true,
2026-06-09T09:52:59.0874002Z           "evidence": [
2026-06-09T09:52:59.0874095Z             {
2026-06-09T09:52:59.0874217Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0874316Z               "line": 1052
2026-06-09T09:52:59.0874402Z             },
2026-06-09T09:52:59.0874501Z             {
2026-06-09T09:52:59.0874628Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.0874729Z               "line": 1383
2026-06-09T09:52:59.0874825Z             },
2026-06-09T09:52:59.0874919Z             {
2026-06-09T09:52:59.0875058Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-09T09:52:59.0875153Z               "line": 84
2026-06-09T09:52:59.0875244Z             },
2026-06-09T09:52:59.0875334Z             {
2026-06-09T09:52:59.0875468Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0875582Z               "line": 763
2026-06-09T09:52:59.0875674Z             },
2026-06-09T09:52:59.0875778Z             {
2026-06-09T09:52:59.0875901Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0876012Z               "line": 774
2026-06-09T09:52:59.0876102Z             },
2026-06-09T09:52:59.0876212Z             {
2026-06-09T09:52:59.0876337Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0876426Z               "line": 789
2026-06-09T09:52:59.0876508Z             },
2026-06-09T09:52:59.0876594Z             {
2026-06-09T09:52:59.0876718Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0876807Z               "line": 165
2026-06-09T09:52:59.0876899Z             },
2026-06-09T09:52:59.0876990Z             {
2026-06-09T09:52:59.0877112Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0877207Z               "line": 180
2026-06-09T09:52:59.0877288Z             },
2026-06-09T09:52:59.0877392Z             {
2026-06-09T09:52:59.0877510Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.0877606Z               "line": 213
2026-06-09T09:52:59.0877692Z             }
2026-06-09T09:52:59.0877782Z           ]
2026-06-09T09:52:59.0877872Z         }
2026-06-09T09:52:59.0877959Z       }
2026-06-09T09:52:59.0878050Z     },
2026-06-09T09:52:59.0878134Z     {
2026-06-09T09:52:59.0878231Z       "id": "REQ-INST-8",
2026-06-09T09:52:59.0878393Z       "title": "Remote-control mode distinct from local operation",
2026-06-09T09:52:59.0878487Z       "requiredStages": [
2026-06-09T09:52:59.0878579Z         "impl",
2026-06-09T09:52:59.0878664Z         "unit",
2026-06-09T09:52:59.0878754Z         "int"
2026-06-09T09:52:59.0878831Z       ],
2026-06-09T09:52:59.0878913Z       "stages": {
2026-06-09T09:52:59.0879079Z         "doc": {
2026-06-09T09:52:59.0879175Z           "complete": false,
2026-06-09T09:52:59.0879261Z           "evidence": []
2026-06-09T09:52:59.0879480Z         },
2026-06-09T09:52:59.0879595Z         "impl": {
2026-06-09T09:52:59.0879693Z           "complete": true,
2026-06-09T09:52:59.0879807Z           "evidence": [
2026-06-09T09:52:59.0879912Z             {
2026-06-09T09:52:59.0880034Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T09:52:59.0880134Z               "line": 98
2026-06-09T09:52:59.0880320Z             },
2026-06-09T09:52:59.0880424Z             {
2026-06-09T09:52:59.0880545Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T09:52:59.0880663Z               "line": 209
2026-06-09T09:52:59.0880768Z             },
2026-06-09T09:52:59.0880864Z             {
2026-06-09T09:52:59.0881001Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T09:52:59.0881093Z               "line": 230
2026-06-09T09:52:59.0881184Z             },
2026-06-09T09:52:59.0881274Z             {
2026-06-09T09:52:59.0881388Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-09T09:52:59.0881480Z               "line": 35
2026-06-09T09:52:59.0881569Z             }
2026-06-09T09:52:59.0881655Z           ]
2026-06-09T09:52:59.0881742Z         },
2026-06-09T09:52:59.0881832Z         "int": {
2026-06-09T09:52:59.0881922Z           "complete": true,
2026-06-09T09:52:59.0882018Z           "evidence": [
2026-06-09T09:52:59.0882114Z             {
2026-06-09T09:52:59.0882241Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.0882332Z               "line": 415
2026-06-09T09:52:59.0882419Z             },
2026-06-09T09:52:59.0882513Z             {
2026-06-09T09:52:59.0882636Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.0882727Z               "line": 933
2026-06-09T09:52:59.0882819Z             }
2026-06-09T09:52:59.0882903Z           ]
2026-06-09T09:52:59.0882989Z         },
2026-06-09T09:52:59.0883076Z         "unit": {
2026-06-09T09:52:59.0883176Z           "complete": true,
2026-06-09T09:52:59.0883261Z           "evidence": [
2026-06-09T09:52:59.0883338Z             {
2026-06-09T09:52:59.0883457Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T09:52:59.0883547Z               "line": 181
2026-06-09T09:52:59.0883648Z             },
2026-06-09T09:52:59.0883734Z             {
2026-06-09T09:52:59.0887753Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T09:52:59.0887881Z               "line": 259
2026-06-09T09:52:59.0887961Z             },
2026-06-09T09:52:59.0888055Z             {
2026-06-09T09:52:59.0888185Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-09T09:52:59.0888286Z               "line": 70
2026-06-09T09:52:59.0888370Z             },
2026-06-09T09:52:59.0888466Z             {
2026-06-09T09:52:59.0888595Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-09T09:52:59.0888699Z               "line": 110
2026-06-09T09:52:59.0888801Z             }
2026-06-09T09:52:59.0888886Z           ]
2026-06-09T09:52:59.0889057Z         }
2026-06-09T09:52:59.0889153Z       }
2026-06-09T09:52:59.0889267Z     },
2026-06-09T09:52:59.0889367Z     {
2026-06-09T09:52:59.0889468Z       "id": "REQ-INST-9",
2026-06-09T09:52:59.0889677Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-09T09:52:59.0889778Z       "requiredStages": [
2026-06-09T09:52:59.0889882Z         "impl",
2026-06-09T09:52:59.0889973Z         "unit"
2026-06-09T09:52:59.0890060Z       ],
2026-06-09T09:52:59.0890150Z       "stages": {
2026-06-09T09:52:59.0890230Z         "doc": {
2026-06-09T09:52:59.0890329Z           "complete": false,
2026-06-09T09:52:59.0890420Z           "evidence": []
2026-06-09T09:52:59.0890514Z         },
2026-06-09T09:52:59.0890599Z         "impl": {
2026-06-09T09:52:59.0890694Z           "complete": true,
2026-06-09T09:52:59.0890785Z           "evidence": [
2026-06-09T09:52:59.0890871Z             {
2026-06-09T09:52:59.0890999Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0891091Z               "line": 401
2026-06-09T09:52:59.0891177Z             }
2026-06-09T09:52:59.0891396Z           ]
2026-06-09T09:52:59.0891486Z         },
2026-06-09T09:52:59.0891580Z         "int": {
2026-06-09T09:52:59.0891672Z           "complete": false,
2026-06-09T09:52:59.0891767Z           "evidence": []
2026-06-09T09:52:59.0891848Z         },
2026-06-09T09:52:59.0891934Z         "unit": {
2026-06-09T09:52:59.0892115Z           "complete": true,
2026-06-09T09:52:59.0892205Z           "evidence": [
2026-06-09T09:52:59.0892287Z             {
2026-06-09T09:52:59.0892402Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0892487Z               "line": 1300
2026-06-09T09:52:59.0892578Z             },
2026-06-09T09:52:59.0892674Z             {
2026-06-09T09:52:59.0892791Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0892893Z               "line": 1309
2026-06-09T09:52:59.0892994Z             },
2026-06-09T09:52:59.0893087Z             {
2026-06-09T09:52:59.0893219Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0893321Z               "line": 1325
2026-06-09T09:52:59.0893416Z             },
2026-06-09T09:52:59.0893506Z             {
2026-06-09T09:52:59.0893645Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0893754Z               "line": 1337
2026-06-09T09:52:59.0893845Z             },
2026-06-09T09:52:59.0893956Z             {
2026-06-09T09:52:59.0894074Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.0894183Z               "line": 1357
2026-06-09T09:52:59.0894270Z             }
2026-06-09T09:52:59.0894365Z           ]
2026-06-09T09:52:59.0894455Z         }
2026-06-09T09:52:59.0894537Z       }
2026-06-09T09:52:59.0894623Z     },
2026-06-09T09:52:59.0894703Z     {
2026-06-09T09:52:59.0894803Z       "id": "REQ-INSTALL-1",
2026-06-09T09:52:59.0894989Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-09T09:52:59.0895089Z       "requiredStages": [
2026-06-09T09:52:59.0895186Z         "doc",
2026-06-09T09:52:59.0895267Z         "impl",
2026-06-09T09:52:59.0895356Z         "int"
2026-06-09T09:52:59.0895436Z       ],
2026-06-09T09:52:59.0895527Z       "stages": {
2026-06-09T09:52:59.0895607Z         "doc": {
2026-06-09T09:52:59.0895701Z           "complete": true,
2026-06-09T09:52:59.0895796Z           "evidence": [
2026-06-09T09:52:59.0895883Z             {
2026-06-09T09:52:59.0895982Z               "path": "CONTEXT.md",
2026-06-09T09:52:59.0896073Z               "line": 576
2026-06-09T09:52:59.0896159Z             }
2026-06-09T09:52:59.0896241Z           ]
2026-06-09T09:52:59.0896331Z         },
2026-06-09T09:52:59.0896420Z         "impl": {
2026-06-09T09:52:59.0896513Z           "complete": true,
2026-06-09T09:52:59.0896607Z           "evidence": [
2026-06-09T09:52:59.0896698Z             {
2026-06-09T09:52:59.0896813Z               "path": "installer/install.ps1",
2026-06-09T09:52:59.0896889Z               "line": 57
2026-06-09T09:52:59.0896979Z             },
2026-06-09T09:52:59.0897079Z             {
2026-06-09T09:52:59.0897185Z               "path": "installer/install.sh",
2026-06-09T09:52:59.0897280Z               "line": 52
2026-06-09T09:52:59.0897365Z             }
2026-06-09T09:52:59.0897467Z           ]
2026-06-09T09:52:59.0897556Z         },
2026-06-09T09:52:59.0897656Z         "int": {
2026-06-09T09:52:59.0897762Z           "complete": true,
2026-06-09T09:52:59.0897857Z           "evidence": [
2026-06-09T09:52:59.0897962Z             {
2026-06-09T09:52:59.0898097Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-09T09:52:59.0898209Z               "line": 21
2026-06-09T09:52:59.0898299Z             }
2026-06-09T09:52:59.0898399Z           ]
2026-06-09T09:52:59.0898498Z         },
2026-06-09T09:52:59.0898592Z         "unit": {
2026-06-09T09:52:59.0898702Z           "complete": false,
2026-06-09T09:52:59.0898793Z           "evidence": []
2026-06-09T09:52:59.0898883Z         }
2026-06-09T09:52:59.0899055Z       }
2026-06-09T09:52:59.0899146Z     },
2026-06-09T09:52:59.0899366Z     {
2026-06-09T09:52:59.0899451Z       "id": "REQ-INSTALL-2",
2026-06-09T09:52:59.0899597Z       "title": "Marketplace-repackaging-friendly install",
2026-06-09T09:52:59.0899685Z       "requiredStages": [
2026-06-09T09:52:59.0899766Z         "doc"
2026-06-09T09:52:59.0899847Z       ],
2026-06-09T09:52:59.0899932Z       "stages": {
2026-06-09T09:52:59.0900104Z         "doc": {
2026-06-09T09:52:59.0900194Z           "complete": true,
2026-06-09T09:52:59.0900285Z           "evidence": [
2026-06-09T09:52:59.0900381Z             {
2026-06-09T09:52:59.0900489Z               "path": "CONTEXT.md",
2026-06-09T09:52:59.0900576Z               "line": 577
2026-06-09T09:52:59.0900663Z             }
2026-06-09T09:52:59.0900748Z           ]
2026-06-09T09:52:59.0900832Z         },
2026-06-09T09:52:59.0900922Z         "impl": {
2026-06-09T09:52:59.0901013Z           "complete": false,
2026-06-09T09:52:59.0901102Z           "evidence": []
2026-06-09T09:52:59.0901187Z         },
2026-06-09T09:52:59.0901274Z         "int": {
2026-06-09T09:52:59.0901360Z           "complete": false,
2026-06-09T09:52:59.0901445Z           "evidence": []
2026-06-09T09:52:59.0901540Z         },
2026-06-09T09:52:59.0901622Z         "unit": {
2026-06-09T09:52:59.0901722Z           "complete": false,
2026-06-09T09:52:59.0901807Z           "evidence": []
2026-06-09T09:52:59.0901918Z         }
2026-06-09T09:52:59.0902017Z       }
2026-06-09T09:52:59.0902103Z     },
2026-06-09T09:52:59.0902198Z     {
2026-06-09T09:52:59.0902299Z       "id": "REQ-INSTALL-3",
2026-06-09T09:52:59.0902455Z       "title": "Idempotent + interactive-optional first run",
2026-06-09T09:52:59.0902557Z       "requiredStages": [
2026-06-09T09:52:59.0902661Z         "impl",
2026-06-09T09:52:59.0902761Z         "int"
2026-06-09T09:52:59.0902852Z       ],
2026-06-09T09:52:59.0902948Z       "stages": {
2026-06-09T09:52:59.0903037Z         "doc": {
2026-06-09T09:52:59.0903148Z           "complete": false,
2026-06-09T09:52:59.0903244Z           "evidence": []
2026-06-09T09:52:59.0903337Z         },
2026-06-09T09:52:59.0903414Z         "impl": {
2026-06-09T09:52:59.0903502Z           "complete": true,
2026-06-09T09:52:59.0903597Z           "evidence": [
2026-06-09T09:52:59.0903676Z             {
2026-06-09T09:52:59.0903784Z               "path": "installer/install.ps1",
2026-06-09T09:52:59.0903871Z               "line": 100
2026-06-09T09:52:59.0903967Z             },
2026-06-09T09:52:59.0904047Z             {
2026-06-09T09:52:59.0904167Z               "path": "installer/install.ps1",
2026-06-09T09:52:59.0904267Z               "line": 111
2026-06-09T09:52:59.0904347Z             },
2026-06-09T09:52:59.0904438Z             {
2026-06-09T09:52:59.0904539Z               "path": "installer/install.sh",
2026-06-09T09:52:59.0904634Z               "line": 79
2026-06-09T09:52:59.0904724Z             }
2026-06-09T09:52:59.0904801Z           ]
2026-06-09T09:52:59.0904891Z         },
2026-06-09T09:52:59.0904972Z         "int": {
2026-06-09T09:52:59.0905067Z           "complete": true,
2026-06-09T09:52:59.0905165Z           "evidence": [
2026-06-09T09:52:59.0905254Z             {
2026-06-09T09:52:59.0905373Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-09T09:52:59.0905460Z               "line": 167
2026-06-09T09:52:59.0905549Z             }
2026-06-09T09:52:59.0905621Z           ]
2026-06-09T09:52:59.0905721Z         },
2026-06-09T09:52:59.0905799Z         "unit": {
2026-06-09T09:52:59.0905902Z           "complete": false,
2026-06-09T09:52:59.0905996Z           "evidence": []
2026-06-09T09:52:59.0906082Z         }
2026-06-09T09:52:59.0906167Z       }
2026-06-09T09:52:59.0906242Z     },
2026-06-09T09:52:59.0906327Z     {
2026-06-09T09:52:59.0906419Z       "id": "REQ-INSTALL-4",
2026-06-09T09:52:59.0907068Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-09T09:52:59.0907168Z       "requiredStages": [
2026-06-09T09:52:59.0907339Z         "impl",
2026-06-09T09:52:59.0907425Z         "unit"
2026-06-09T09:52:59.0907506Z       ],
2026-06-09T09:52:59.0907596Z       "stages": {
2026-06-09T09:52:59.0907673Z         "doc": {
2026-06-09T09:52:59.0907768Z           "complete": false,
2026-06-09T09:52:59.0907858Z           "evidence": []
2026-06-09T09:52:59.0908003Z         },
2026-06-09T09:52:59.0908097Z         "impl": {
2026-06-09T09:52:59.0908188Z           "complete": true,
2026-06-09T09:52:59.0908274Z           "evidence": [
2026-06-09T09:52:59.0908356Z             {
2026-06-09T09:52:59.0908493Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.0908584Z               "line": 154
2026-06-09T09:52:59.0908666Z             },
2026-06-09T09:52:59.0908750Z             {
2026-06-09T09:52:59.0908873Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0909081Z               "line": 29
2026-06-09T09:52:59.0909166Z             },
2026-06-09T09:52:59.0909262Z             {
2026-06-09T09:52:59.0909382Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0909467Z               "line": 117
2026-06-09T09:52:59.0909553Z             },
2026-06-09T09:52:59.0909630Z             {
2026-06-09T09:52:59.0909749Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0909843Z               "line": 161
2026-06-09T09:52:59.0909926Z             },
2026-06-09T09:52:59.0910016Z             {
2026-06-09T09:52:59.0910125Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0910216Z               "line": 191
2026-06-09T09:52:59.0910297Z             },
2026-06-09T09:52:59.0910382Z             {
2026-06-09T09:52:59.0910492Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0910588Z               "line": 223
2026-06-09T09:52:59.0910678Z             },
2026-06-09T09:52:59.0910754Z             {
2026-06-09T09:52:59.0910860Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0910951Z               "line": 4108
2026-06-09T09:52:59.0911035Z             }
2026-06-09T09:52:59.0911121Z           ]
2026-06-09T09:52:59.0911204Z         },
2026-06-09T09:52:59.0911289Z         "int": {
2026-06-09T09:52:59.0911378Z           "complete": false,
2026-06-09T09:52:59.0911473Z           "evidence": []
2026-06-09T09:52:59.0911554Z         },
2026-06-09T09:52:59.0911648Z         "unit": {
2026-06-09T09:52:59.0911737Z           "complete": true,
2026-06-09T09:52:59.0911834Z           "evidence": [
2026-06-09T09:52:59.0911920Z             {
2026-06-09T09:52:59.0912047Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.0912143Z               "line": 335
2026-06-09T09:52:59.0912225Z             },
2026-06-09T09:52:59.0912311Z             {
2026-06-09T09:52:59.0912429Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0912521Z               "line": 269
2026-06-09T09:52:59.0912606Z             },
2026-06-09T09:52:59.0912691Z             {
2026-06-09T09:52:59.0912812Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0912897Z               "line": 310
2026-06-09T09:52:59.0912992Z             },
2026-06-09T09:52:59.0913073Z             {
2026-06-09T09:52:59.0913193Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-09T09:52:59.0913283Z               "line": 330
2026-06-09T09:52:59.0913364Z             },
2026-06-09T09:52:59.0913451Z             {
2026-06-09T09:52:59.0913555Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0913650Z               "line": 5679
2026-06-09T09:52:59.0913737Z             }
2026-06-09T09:52:59.0913818Z           ]
2026-06-09T09:52:59.0913907Z         }
2026-06-09T09:52:59.0913988Z       }
2026-06-09T09:52:59.0914071Z     },
2026-06-09T09:52:59.0914152Z     {
2026-06-09T09:52:59.0914250Z       "id": "REQ-INSTALL-5",
2026-06-09T09:52:59.0914727Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-09T09:52:59.0914926Z       "requiredStages": [
2026-06-09T09:52:59.0915018Z         "impl",
2026-06-09T09:52:59.0915104Z         "int"
2026-06-09T09:52:59.0915195Z       ],
2026-06-09T09:52:59.0915275Z       "stages": {
2026-06-09T09:52:59.0915456Z         "doc": {
2026-06-09T09:52:59.0915551Z           "complete": false,
2026-06-09T09:52:59.0915642Z           "evidence": []
2026-06-09T09:52:59.0915725Z         },
2026-06-09T09:52:59.0915814Z         "impl": {
2026-06-09T09:52:59.0915909Z           "complete": true,
2026-06-09T09:52:59.0915991Z           "evidence": [
2026-06-09T09:52:59.0916082Z             {
2026-06-09T09:52:59.0916191Z               "path": "installer/install.ps1",
2026-06-09T09:52:59.0916281Z               "line": 5
2026-06-09T09:52:59.0916364Z             },
2026-06-09T09:52:59.0916443Z             {
2026-06-09T09:52:59.0916552Z               "path": "installer/install.sh",
2026-06-09T09:52:59.0916642Z               "line": 6
2026-06-09T09:52:59.0916728Z             }
2026-06-09T09:52:59.0916807Z           ]
2026-06-09T09:52:59.0916888Z         },
2026-06-09T09:52:59.0916979Z         "int": {
2026-06-09T09:52:59.0917066Z           "complete": true,
2026-06-09T09:52:59.0917150Z           "evidence": [
2026-06-09T09:52:59.0917236Z             {
2026-06-09T09:52:59.0917361Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-09T09:52:59.0917455Z               "line": 22
2026-06-09T09:52:59.0917531Z             }
2026-06-09T09:52:59.0917614Z           ]
2026-06-09T09:52:59.0917699Z         },
2026-06-09T09:52:59.0917784Z         "unit": {
2026-06-09T09:52:59.0917875Z           "complete": false,
2026-06-09T09:52:59.0917971Z           "evidence": []
2026-06-09T09:52:59.0918057Z         }
2026-06-09T09:52:59.0918142Z       }
2026-06-09T09:52:59.0918228Z     },
2026-06-09T09:52:59.0918305Z     {
2026-06-09T09:52:59.0918404Z       "id": "REQ-INSTALL-6",
2026-06-09T09:52:59.0919831Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-09T09:52:59.0919951Z       "requiredStages": [
2026-06-09T09:52:59.0920046Z         "impl",
2026-06-09T09:52:59.0920127Z         "unit"
2026-06-09T09:52:59.0920214Z       ],
2026-06-09T09:52:59.0920295Z       "stages": {
2026-06-09T09:52:59.0920385Z         "doc": {
2026-06-09T09:52:59.0920486Z           "complete": false,
2026-06-09T09:52:59.0920571Z           "evidence": []
2026-06-09T09:52:59.0920656Z         },
2026-06-09T09:52:59.0920737Z         "impl": {
2026-06-09T09:52:59.0920834Z           "complete": true,
2026-06-09T09:52:59.0920919Z           "evidence": [
2026-06-09T09:52:59.0921014Z             {
2026-06-09T09:52:59.0921144Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0921233Z               "line": 59
2026-06-09T09:52:59.0921319Z             },
2026-06-09T09:52:59.0921401Z             {
2026-06-09T09:52:59.0921520Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.0921624Z               "line": 538
2026-06-09T09:52:59.0921711Z             },
2026-06-09T09:52:59.0921793Z             {
2026-06-09T09:52:59.0921915Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0922014Z               "line": 191
2026-06-09T09:52:59.0922096Z             },
2026-06-09T09:52:59.0922180Z             {
2026-06-09T09:52:59.0922297Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0922384Z               "line": 276
2026-06-09T09:52:59.0922471Z             },
2026-06-09T09:52:59.0922551Z             {
2026-06-09T09:52:59.0922660Z               "path": "crates/spt/src/main.rs",
2026-06-09T09:52:59.0922862Z               "line": 40
2026-06-09T09:52:59.0922946Z             },
2026-06-09T09:52:59.0923028Z             {
2026-06-09T09:52:59.0923143Z               "path": "installer/install.sh",
2026-06-09T09:52:59.0923233Z               "line": 104
2026-06-09T09:52:59.0923309Z             }
2026-06-09T09:52:59.0923490Z           ]
2026-06-09T09:52:59.0923571Z         },
2026-06-09T09:52:59.0923657Z         "int": {
2026-06-09T09:52:59.0923748Z           "complete": false,
2026-06-09T09:52:59.0923839Z           "evidence": []
2026-06-09T09:52:59.0923929Z         },
2026-06-09T09:52:59.0924007Z         "unit": {
2026-06-09T09:52:59.0924101Z           "complete": true,
2026-06-09T09:52:59.0924192Z           "evidence": [
2026-06-09T09:52:59.0924278Z             {
2026-06-09T09:52:59.0924397Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-09T09:52:59.0924491Z               "line": 866
2026-06-09T09:52:59.0924583Z             }
2026-06-09T09:52:59.0924664Z           ]
2026-06-09T09:52:59.0924754Z         }
2026-06-09T09:52:59.0924834Z       }
2026-06-09T09:52:59.0924914Z     },
2026-06-09T09:52:59.0924996Z     {
2026-06-09T09:52:59.0925097Z       "id": "REQ-INSTALL-7",
2026-06-09T09:52:59.0926255Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-09T09:52:59.0926355Z       "requiredStages": [
2026-06-09T09:52:59.0926445Z         "impl"
2026-06-09T09:52:59.0926527Z       ],
2026-06-09T09:52:59.0926618Z       "stages": {
2026-06-09T09:52:59.0926702Z         "doc": {
2026-06-09T09:52:59.0926788Z           "complete": false,
2026-06-09T09:52:59.0926876Z           "evidence": []
2026-06-09T09:52:59.0926957Z         },
2026-06-09T09:52:59.0927041Z         "impl": {
2026-06-09T09:52:59.0927140Z           "complete": true,
2026-06-09T09:52:59.0927231Z           "evidence": [
2026-06-09T09:52:59.0927316Z             {
2026-06-09T09:52:59.0927420Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0927510Z               "line": 2772
2026-06-09T09:52:59.0927582Z             },
2026-06-09T09:52:59.0927682Z             {
2026-06-09T09:52:59.0927791Z               "path": "installer/install.ps1",
2026-06-09T09:52:59.0927897Z               "line": 157
2026-06-09T09:52:59.0927978Z             }
2026-06-09T09:52:59.0928053Z           ]
2026-06-09T09:52:59.0928140Z         },
2026-06-09T09:52:59.0928221Z         "int": {
2026-06-09T09:52:59.0928316Z           "complete": false,
2026-06-09T09:52:59.0928406Z           "evidence": []
2026-06-09T09:52:59.0928489Z         },
2026-06-09T09:52:59.0928574Z         "unit": {
2026-06-09T09:52:59.0928650Z           "complete": false,
2026-06-09T09:52:59.0928731Z           "evidence": []
2026-06-09T09:52:59.0928813Z         }
2026-06-09T09:52:59.0929026Z       }
2026-06-09T09:52:59.0929104Z     },
2026-06-09T09:52:59.0929190Z     {
2026-06-09T09:52:59.0929284Z       "id": "REQ-INSTALL-8",
2026-06-09T09:52:59.0930310Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-09T09:52:59.0930411Z       "requiredStages": [
2026-06-09T09:52:59.0930488Z         "impl"
2026-06-09T09:52:59.0930558Z       ],
2026-06-09T09:52:59.0930649Z       "stages": {
2026-06-09T09:52:59.0930731Z         "doc": {
2026-06-09T09:52:59.0930864Z           "complete": false,
2026-06-09T09:52:59.0930959Z           "evidence": []
2026-06-09T09:52:59.0931046Z         },
2026-06-09T09:52:59.0931254Z         "impl": {
2026-06-09T09:52:59.0931346Z           "complete": true,
2026-06-09T09:52:59.0931436Z           "evidence": [
2026-06-09T09:52:59.0931522Z             {
2026-06-09T09:52:59.0931626Z               "path": "installer/install.ps1",
2026-06-09T09:52:59.0931709Z               "line": 184
2026-06-09T09:52:59.0931884Z             },
2026-06-09T09:52:59.0931966Z             {
2026-06-09T09:52:59.0932071Z               "path": "installer/install.sh",
2026-06-09T09:52:59.0932151Z               "line": 121
2026-06-09T09:52:59.0932233Z             }
2026-06-09T09:52:59.0932314Z           ]
2026-06-09T09:52:59.0932390Z         },
2026-06-09T09:52:59.0932480Z         "int": {
2026-06-09T09:52:59.0932564Z           "complete": false,
2026-06-09T09:52:59.0932661Z           "evidence": []
2026-06-09T09:52:59.0932740Z         },
2026-06-09T09:52:59.0932825Z         "unit": {
2026-06-09T09:52:59.0932920Z           "complete": false,
2026-06-09T09:52:59.0933006Z           "evidence": []
2026-06-09T09:52:59.0933079Z         }
2026-06-09T09:52:59.0933159Z       }
2026-06-09T09:52:59.0933245Z     },
2026-06-09T09:52:59.0933331Z     {
2026-06-09T09:52:59.0933422Z       "id": "REQ-MANIFEST-1",
2026-06-09T09:52:59.0933608Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-09T09:52:59.0933698Z       "requiredStages": [
2026-06-09T09:52:59.0933788Z         "doc",
2026-06-09T09:52:59.0933874Z         "impl",
2026-06-09T09:52:59.0933960Z         "unit"
2026-06-09T09:52:59.0934046Z       ],
2026-06-09T09:52:59.0934126Z       "stages": {
2026-06-09T09:52:59.0934208Z         "doc": {
2026-06-09T09:52:59.0934294Z           "complete": true,
2026-06-09T09:52:59.0934384Z           "evidence": [
2026-06-09T09:52:59.0934465Z             {
2026-06-09T09:52:59.0934572Z               "path": "docs/MANIFEST.md",
2026-06-09T09:52:59.0934665Z               "line": 19
2026-06-09T09:52:59.0934742Z             }
2026-06-09T09:52:59.0934828Z           ]
2026-06-09T09:52:59.0934905Z         },
2026-06-09T09:52:59.0934999Z         "impl": {
2026-06-09T09:52:59.0935085Z           "complete": true,
2026-06-09T09:52:59.0935172Z           "evidence": [
2026-06-09T09:52:59.0935258Z             {
2026-06-09T09:52:59.0935380Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0935470Z               "line": 18
2026-06-09T09:52:59.0935551Z             }
2026-06-09T09:52:59.0935638Z           ]
2026-06-09T09:52:59.0935713Z         },
2026-06-09T09:52:59.0935799Z         "int": {
2026-06-09T09:52:59.0935891Z           "complete": false,
2026-06-09T09:52:59.0935977Z           "evidence": []
2026-06-09T09:52:59.0936061Z         },
2026-06-09T09:52:59.0936143Z         "unit": {
2026-06-09T09:52:59.0936243Z           "complete": true,
2026-06-09T09:52:59.0936329Z           "evidence": [
2026-06-09T09:52:59.0936414Z             {
2026-06-09T09:52:59.0936534Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0936619Z               "line": 746
2026-06-09T09:52:59.0936709Z             },
2026-06-09T09:52:59.0936787Z             {
2026-06-09T09:52:59.0936911Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0936996Z               "line": 860
2026-06-09T09:52:59.0937082Z             },
2026-06-09T09:52:59.0937169Z             {
2026-06-09T09:52:59.0937277Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0937368Z               "line": 872
2026-06-09T09:52:59.0937450Z             },
2026-06-09T09:52:59.0937545Z             {
2026-06-09T09:52:59.0937644Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0937729Z               "line": 883
2026-06-09T09:52:59.0937815Z             },
2026-06-09T09:52:59.0937895Z             {
2026-06-09T09:52:59.0938013Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0938099Z               "line": 900
2026-06-09T09:52:59.0938191Z             },
2026-06-09T09:52:59.0938275Z             {
2026-06-09T09:52:59.0938476Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0938571Z               "line": 914
2026-06-09T09:52:59.0938657Z             },
2026-06-09T09:52:59.0938739Z             {
2026-06-09T09:52:59.0938863Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0939025Z               "line": 929
2026-06-09T09:52:59.0939215Z             },
2026-06-09T09:52:59.0939296Z             {
2026-06-09T09:52:59.0939421Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0939511Z               "line": 944
2026-06-09T09:52:59.0939591Z             },
2026-06-09T09:52:59.0939673Z             {
2026-06-09T09:52:59.0939801Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0939896Z               "line": 959
2026-06-09T09:52:59.0939979Z             },
2026-06-09T09:52:59.0940069Z             {
2026-06-09T09:52:59.0940183Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.0940279Z               "line": 970
2026-06-09T09:52:59.0940365Z             }
2026-06-09T09:52:59.0940449Z           ]
2026-06-09T09:52:59.0940535Z         }
2026-06-09T09:52:59.0940611Z       }
2026-06-09T09:52:59.0940692Z     },
2026-06-09T09:52:59.0940771Z     {
2026-06-09T09:52:59.0940861Z       "id": "REQ-MESH-1",
2026-06-09T09:52:59.0943040Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-09T09:52:59.0943163Z       "requiredStages": [
2026-06-09T09:52:59.0943254Z         "impl",
2026-06-09T09:52:59.0943338Z         "unit",
2026-06-09T09:52:59.0943423Z         "int"
2026-06-09T09:52:59.0943509Z       ],
2026-06-09T09:52:59.0943591Z       "stages": {
2026-06-09T09:52:59.0943681Z         "doc": {
2026-06-09T09:52:59.0943785Z           "complete": false,
2026-06-09T09:52:59.0943877Z           "evidence": []
2026-06-09T09:52:59.0943958Z         },
2026-06-09T09:52:59.0944043Z         "impl": {
2026-06-09T09:52:59.0944134Z           "complete": true,
2026-06-09T09:52:59.0944224Z           "evidence": [
2026-06-09T09:52:59.0944310Z             {
2026-06-09T09:52:59.0944434Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0944525Z               "line": 680
2026-06-09T09:52:59.0944606Z             },
2026-06-09T09:52:59.0944691Z             {
2026-06-09T09:52:59.0944826Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0944920Z               "line": 38
2026-06-09T09:52:59.0945001Z             },
2026-06-09T09:52:59.0945083Z             {
2026-06-09T09:52:59.0945207Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0945292Z               "line": 161
2026-06-09T09:52:59.0945383Z             },
2026-06-09T09:52:59.0945470Z             {
2026-06-09T09:52:59.0945592Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0945688Z               "line": 206
2026-06-09T09:52:59.0945771Z             },
2026-06-09T09:52:59.0945860Z             {
2026-06-09T09:52:59.0945973Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.0946068Z               "line": 57
2026-06-09T09:52:59.0946155Z             },
2026-06-09T09:52:59.0946240Z             {
2026-06-09T09:52:59.0946373Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0946465Z               "line": 24
2026-06-09T09:52:59.0946551Z             },
2026-06-09T09:52:59.0946746Z             {
2026-06-09T09:52:59.0946875Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0946969Z               "line": 142
2026-06-09T09:52:59.0947052Z             },
2026-06-09T09:52:59.0947137Z             {
2026-06-09T09:52:59.0947260Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0947423Z               "line": 162
2026-06-09T09:52:59.0947513Z             }
2026-06-09T09:52:59.0947594Z           ]
2026-06-09T09:52:59.0947677Z         },
2026-06-09T09:52:59.0947762Z         "int": {
2026-06-09T09:52:59.0947856Z           "complete": true,
2026-06-09T09:52:59.0947943Z           "evidence": [
2026-06-09T09:52:59.0948029Z             {
2026-06-09T09:52:59.0948157Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T09:52:59.0948247Z               "line": 67
2026-06-09T09:52:59.0948333Z             },
2026-06-09T09:52:59.0948413Z             {
2026-06-09T09:52:59.0948540Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T09:52:59.0948631Z               "line": 93
2026-06-09T09:52:59.0948722Z             },
2026-06-09T09:52:59.0948807Z             {
2026-06-09T09:52:59.0948926Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T09:52:59.0949127Z               "line": 117
2026-06-09T09:52:59.0949207Z             },
2026-06-09T09:52:59.0949299Z             {
2026-06-09T09:52:59.0949418Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-09T09:52:59.0949512Z               "line": 134
2026-06-09T09:52:59.0949599Z             }
2026-06-09T09:52:59.0949680Z           ]
2026-06-09T09:52:59.0949766Z         },
2026-06-09T09:52:59.0949846Z         "unit": {
2026-06-09T09:52:59.0949942Z           "complete": true,
2026-06-09T09:52:59.0950028Z           "evidence": [
2026-06-09T09:52:59.0950118Z             {
2026-06-09T09:52:59.0950243Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.0950324Z               "line": 427
2026-06-09T09:52:59.0950424Z             },
2026-06-09T09:52:59.0950505Z             {
2026-06-09T09:52:59.0950639Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0950723Z               "line": 376
2026-06-09T09:52:59.0950810Z             },
2026-06-09T09:52:59.0950892Z             {
2026-06-09T09:52:59.0951024Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0951114Z               "line": 412
2026-06-09T09:52:59.0951195Z             },
2026-06-09T09:52:59.0951271Z             {
2026-06-09T09:52:59.0951393Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0951488Z               "line": 427
2026-06-09T09:52:59.0951575Z             },
2026-06-09T09:52:59.0951656Z             {
2026-06-09T09:52:59.0951788Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0951875Z               "line": 438
2026-06-09T09:52:59.0951961Z             },
2026-06-09T09:52:59.0952050Z             {
2026-06-09T09:52:59.0952171Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0952265Z               "line": 449
2026-06-09T09:52:59.0952346Z             },
2026-06-09T09:52:59.0952427Z             {
2026-06-09T09:52:59.0952552Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0952647Z               "line": 460
2026-06-09T09:52:59.0952733Z             },
2026-06-09T09:52:59.0952815Z             {
2026-06-09T09:52:59.0952942Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0953028Z               "line": 496
2026-06-09T09:52:59.0953115Z             },
2026-06-09T09:52:59.0953196Z             {
2026-06-09T09:52:59.0953329Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0953420Z               "line": 519
2026-06-09T09:52:59.0953502Z             },
2026-06-09T09:52:59.0953585Z             {
2026-06-09T09:52:59.0953708Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0953912Z               "line": 546
2026-06-09T09:52:59.0953992Z             }
2026-06-09T09:52:59.0954078Z           ]
2026-06-09T09:52:59.0954165Z         }
2026-06-09T09:52:59.0954245Z       }
2026-06-09T09:52:59.0954335Z     },
2026-06-09T09:52:59.0954423Z     {
2026-06-09T09:52:59.0954627Z       "id": "REQ-MESH-2",
2026-06-09T09:52:59.0957224Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-09T09:52:59.0957345Z       "requiredStages": [
2026-06-09T09:52:59.0957472Z         "impl",
2026-06-09T09:52:59.0957559Z         "unit",
2026-06-09T09:52:59.0957640Z         "int"
2026-06-09T09:52:59.0957716Z       ],
2026-06-09T09:52:59.0957797Z       "stages": {
2026-06-09T09:52:59.0957892Z         "doc": {
2026-06-09T09:52:59.0957983Z           "complete": false,
2026-06-09T09:52:59.0958078Z           "evidence": []
2026-06-09T09:52:59.0958154Z         },
2026-06-09T09:52:59.0958237Z         "impl": {
2026-06-09T09:52:59.0958332Z           "complete": true,
2026-06-09T09:52:59.0958416Z           "evidence": [
2026-06-09T09:52:59.0958503Z             {
2026-06-09T09:52:59.0958618Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.0958735Z               "line": 569
2026-06-09T09:52:59.0958812Z             },
2026-06-09T09:52:59.0958888Z             {
2026-06-09T09:52:59.0959095Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0959186Z               "line": 118
2026-06-09T09:52:59.0959277Z             },
2026-06-09T09:52:59.0959358Z             {
2026-06-09T09:52:59.0962258Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0962382Z               "line": 347
2026-06-09T09:52:59.0962473Z             },
2026-06-09T09:52:59.0962559Z             {
2026-06-09T09:52:59.0962687Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0962784Z               "line": 389
2026-06-09T09:52:59.0962869Z             },
2026-06-09T09:52:59.0962958Z             {
2026-06-09T09:52:59.0963089Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0963178Z               "line": 403
2026-06-09T09:52:59.0963269Z             },
2026-06-09T09:52:59.0963365Z             {
2026-06-09T09:52:59.0963488Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0963578Z               "line": 492
2026-06-09T09:52:59.0963661Z             },
2026-06-09T09:52:59.0963742Z             {
2026-06-09T09:52:59.0963855Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0963951Z               "line": 507
2026-06-09T09:52:59.0964038Z             },
2026-06-09T09:52:59.0964122Z             {
2026-06-09T09:52:59.0964236Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.0964331Z               "line": 534
2026-06-09T09:52:59.0964416Z             },
2026-06-09T09:52:59.0964491Z             {
2026-06-09T09:52:59.0964620Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0964696Z               "line": 207
2026-06-09T09:52:59.0964782Z             },
2026-06-09T09:52:59.0964863Z             {
2026-06-09T09:52:59.0964993Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0965259Z               "line": 755
2026-06-09T09:52:59.0965378Z             },
2026-06-09T09:52:59.0965497Z             {
2026-06-09T09:52:59.0965617Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0965716Z               "line": 816
2026-06-09T09:52:59.0965898Z             },
2026-06-09T09:52:59.0965975Z             {
2026-06-09T09:52:59.0966098Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0966188Z               "line": 869
2026-06-09T09:52:59.0966271Z             },
2026-06-09T09:52:59.0966350Z             {
2026-06-09T09:52:59.0966475Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0966561Z               "line": 891
2026-06-09T09:52:59.0966642Z             },
2026-06-09T09:52:59.0966727Z             {
2026-06-09T09:52:59.0966838Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0966924Z               "line": 112
2026-06-09T09:52:59.0967013Z             },
2026-06-09T09:52:59.0967098Z             {
2026-06-09T09:52:59.0967213Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0967304Z               "line": 44
2026-06-09T09:52:59.0967389Z             },
2026-06-09T09:52:59.0967470Z             {
2026-06-09T09:52:59.0967590Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0967680Z               "line": 184
2026-06-09T09:52:59.0967765Z             },
2026-06-09T09:52:59.0967853Z             {
2026-06-09T09:52:59.0967957Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0968047Z               "line": 211
2026-06-09T09:52:59.0968138Z             },
2026-06-09T09:52:59.0968243Z             {
2026-06-09T09:52:59.0968352Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0968438Z               "line": 251
2026-06-09T09:52:59.0968520Z             },
2026-06-09T09:52:59.0968600Z             {
2026-06-09T09:52:59.0968733Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0968821Z               "line": 275
2026-06-09T09:52:59.0968910Z             },
2026-06-09T09:52:59.0969101Z             {
2026-06-09T09:52:59.0969206Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0969310Z               "line": 289
2026-06-09T09:52:59.0969405Z             },
2026-06-09T09:52:59.0969490Z             {
2026-06-09T09:52:59.0969603Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0969693Z               "line": 300
2026-06-09T09:52:59.0969775Z             },
2026-06-09T09:52:59.0969861Z             {
2026-06-09T09:52:59.0969979Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0970065Z               "line": 313
2026-06-09T09:52:59.0970147Z             }
2026-06-09T09:52:59.0970228Z           ]
2026-06-09T09:52:59.0970313Z         },
2026-06-09T09:52:59.0970395Z         "int": {
2026-06-09T09:52:59.0970495Z           "complete": true,
2026-06-09T09:52:59.0970590Z           "evidence": [
2026-06-09T09:52:59.0970676Z             {
2026-06-09T09:52:59.0970815Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-09T09:52:59.0970900Z               "line": 116
2026-06-09T09:52:59.0970991Z             },
2026-06-09T09:52:59.0971077Z             {
2026-06-09T09:52:59.0971210Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-09T09:52:59.0971305Z               "line": 181
2026-06-09T09:52:59.0971392Z             }
2026-06-09T09:52:59.0971482Z           ]
2026-06-09T09:52:59.0971563Z         },
2026-06-09T09:52:59.0971649Z         "unit": {
2026-06-09T09:52:59.0971740Z           "complete": true,
2026-06-09T09:52:59.0971825Z           "evidence": [
2026-06-09T09:52:59.0971901Z             {
2026-06-09T09:52:59.0972022Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0972107Z               "line": 999
2026-06-09T09:52:59.0972191Z             },
2026-06-09T09:52:59.0972276Z             {
2026-06-09T09:52:59.0972499Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0972584Z               "line": 1016
2026-06-09T09:52:59.0972656Z             },
2026-06-09T09:52:59.0972737Z             {
2026-06-09T09:52:59.0972860Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0972947Z               "line": 1024
2026-06-09T09:52:59.0973147Z             },
2026-06-09T09:52:59.0973233Z             {
2026-06-09T09:52:59.0973353Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0973443Z               "line": 1048
2026-06-09T09:52:59.0973523Z             },
2026-06-09T09:52:59.0973606Z             {
2026-06-09T09:52:59.0973733Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.0973833Z               "line": 1499
2026-06-09T09:52:59.0973921Z             },
2026-06-09T09:52:59.0974002Z             {
2026-06-09T09:52:59.0974120Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0974216Z               "line": 347
2026-06-09T09:52:59.0974302Z             },
2026-06-09T09:52:59.0974381Z             {
2026-06-09T09:52:59.0974502Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0974593Z               "line": 370
2026-06-09T09:52:59.0974673Z             },
2026-06-09T09:52:59.0974758Z             {
2026-06-09T09:52:59.0974872Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0974972Z               "line": 407
2026-06-09T09:52:59.0975051Z             },
2026-06-09T09:52:59.0975136Z             {
2026-06-09T09:52:59.0975252Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0975338Z               "line": 431
2026-06-09T09:52:59.0975427Z             },
2026-06-09T09:52:59.0975504Z             {
2026-06-09T09:52:59.0975619Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0975704Z               "line": 483
2026-06-09T09:52:59.0975789Z             },
2026-06-09T09:52:59.0975877Z             {
2026-06-09T09:52:59.0975986Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0976081Z               "line": 499
2026-06-09T09:52:59.0976158Z             },
2026-06-09T09:52:59.0976248Z             {
2026-06-09T09:52:59.0976352Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0976453Z               "line": 514
2026-06-09T09:52:59.0976544Z             },
2026-06-09T09:52:59.0976625Z             {
2026-06-09T09:52:59.0976739Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.0976850Z               "line": 531
2026-06-09T09:52:59.0976934Z             }
2026-06-09T09:52:59.0977020Z           ]
2026-06-09T09:52:59.0977103Z         }
2026-06-09T09:52:59.0977193Z       }
2026-06-09T09:52:59.0977272Z     },
2026-06-09T09:52:59.0977359Z     {
2026-06-09T09:52:59.0977446Z       "id": "REQ-MESH-3",
2026-06-09T09:52:59.0979337Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-09T09:52:59.0979461Z       "requiredStages": [
2026-06-09T09:52:59.0979551Z         "impl",
2026-06-09T09:52:59.0979637Z         "unit",
2026-06-09T09:52:59.0979720Z         "int"
2026-06-09T09:52:59.0979813Z       ],
2026-06-09T09:52:59.0979908Z       "stages": {
2026-06-09T09:52:59.0979989Z         "doc": {
2026-06-09T09:52:59.0980088Z           "complete": false,
2026-06-09T09:52:59.0980178Z           "evidence": []
2026-06-09T09:52:59.0980267Z         },
2026-06-09T09:52:59.0980354Z         "impl": {
2026-06-09T09:52:59.0980450Z           "complete": true,
2026-06-09T09:52:59.0980678Z           "evidence": [
2026-06-09T09:52:59.0980769Z             {
2026-06-09T09:52:59.0980901Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0980993Z               "line": 410
2026-06-09T09:52:59.0981084Z             },
2026-06-09T09:52:59.0981164Z             {
2026-06-09T09:52:59.0981403Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0981493Z               "line": 603
2026-06-09T09:52:59.0981579Z             }
2026-06-09T09:52:59.0981666Z           ]
2026-06-09T09:52:59.0981746Z         },
2026-06-09T09:52:59.0981836Z         "int": {
2026-06-09T09:52:59.0981929Z           "complete": true,
2026-06-09T09:52:59.0982018Z           "evidence": [
2026-06-09T09:52:59.0982109Z             {
2026-06-09T09:52:59.0982224Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-09T09:52:59.0982314Z               "line": 373
2026-06-09T09:52:59.0982399Z             },
2026-06-09T09:52:59.0982490Z             {
2026-06-09T09:52:59.0982605Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-09T09:52:59.0982704Z               "line": 436
2026-06-09T09:52:59.0982789Z             }
2026-06-09T09:52:59.0982875Z           ]
2026-06-09T09:52:59.0982960Z         },
2026-06-09T09:52:59.0983045Z         "unit": {
2026-06-09T09:52:59.0983144Z           "complete": true,
2026-06-09T09:52:59.0983221Z           "evidence": [
2026-06-09T09:52:59.0983307Z             {
2026-06-09T09:52:59.0983435Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0983522Z               "line": 881
2026-06-09T09:52:59.0983608Z             }
2026-06-09T09:52:59.0983688Z           ]
2026-06-09T09:52:59.0983773Z         }
2026-06-09T09:52:59.0983856Z       }
2026-06-09T09:52:59.0983946Z     },
2026-06-09T09:52:59.0984031Z     {
2026-06-09T09:52:59.0984122Z       "id": "REQ-MESH-4",
2026-06-09T09:52:59.0986326Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-09T09:52:59.0986447Z       "requiredStages": [
2026-06-09T09:52:59.0986532Z         "impl",
2026-06-09T09:52:59.0986621Z         "unit",
2026-06-09T09:52:59.0986699Z         "int"
2026-06-09T09:52:59.0986785Z       ],
2026-06-09T09:52:59.0986865Z       "stages": {
2026-06-09T09:52:59.0986946Z         "doc": {
2026-06-09T09:52:59.0987047Z           "complete": false,
2026-06-09T09:52:59.0987165Z           "evidence": []
2026-06-09T09:52:59.0987256Z         },
2026-06-09T09:52:59.0987343Z         "impl": {
2026-06-09T09:52:59.0987443Z           "complete": true,
2026-06-09T09:52:59.0987528Z           "evidence": [
2026-06-09T09:52:59.0987614Z             {
2026-06-09T09:52:59.0987767Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0987857Z               "line": 187
2026-06-09T09:52:59.0987939Z             },
2026-06-09T09:52:59.0988020Z             {
2026-06-09T09:52:59.0988152Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0988247Z               "line": 68
2026-06-09T09:52:59.0988328Z             },
2026-06-09T09:52:59.0988415Z             {
2026-06-09T09:52:59.0988533Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0988624Z               "line": 111
2026-06-09T09:52:59.0988705Z             },
2026-06-09T09:52:59.0988791Z             {
2026-06-09T09:52:59.0989124Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0989210Z               "line": 462
2026-06-09T09:52:59.0989292Z             },
2026-06-09T09:52:59.0989372Z             {
2026-06-09T09:52:59.0989491Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0989578Z               "line": 711
2026-06-09T09:52:59.0989763Z             },
2026-06-09T09:52:59.0989849Z             {
2026-06-09T09:52:59.0989970Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0990063Z               "line": 725
2026-06-09T09:52:59.0990149Z             },
2026-06-09T09:52:59.0990241Z             {
2026-06-09T09:52:59.0990359Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.0990454Z               "line": 122
2026-06-09T09:52:59.0990539Z             },
2026-06-09T09:52:59.0990625Z             {
2026-06-09T09:52:59.0990752Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0990842Z               "line": 26
2026-06-09T09:52:59.0990933Z             },
2026-06-09T09:52:59.0991015Z             {
2026-06-09T09:52:59.0991137Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0991229Z               "line": 97
2026-06-09T09:52:59.0991315Z             },
2026-06-09T09:52:59.0991405Z             {
2026-06-09T09:52:59.0991520Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0991615Z               "line": 119
2026-06-09T09:52:59.0991715Z             },
2026-06-09T09:52:59.0991806Z             {
2026-06-09T09:52:59.0991925Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0992010Z               "line": 82
2026-06-09T09:52:59.0992096Z             },
2026-06-09T09:52:59.0992174Z             {
2026-06-09T09:52:59.0992292Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0992378Z               "line": 111
2026-06-09T09:52:59.0992459Z             },
2026-06-09T09:52:59.0992545Z             {
2026-06-09T09:52:59.0992659Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0992750Z               "line": 232
2026-06-09T09:52:59.0992823Z             },
2026-06-09T09:52:59.0992902Z             {
2026-06-09T09:52:59.0993022Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0993108Z               "line": 245
2026-06-09T09:52:59.0993203Z             },
2026-06-09T09:52:59.0993279Z             {
2026-06-09T09:52:59.0993387Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.0993473Z               "line": 3504
2026-06-09T09:52:59.0993600Z             }
2026-06-09T09:52:59.0993685Z           ]
2026-06-09T09:52:59.0993762Z         },
2026-06-09T09:52:59.0993853Z         "int": {
2026-06-09T09:52:59.0993943Z           "complete": true,
2026-06-09T09:52:59.0994038Z           "evidence": [
2026-06-09T09:52:59.0994115Z             {
2026-06-09T09:52:59.0994244Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-09T09:52:59.0994338Z               "line": 98
2026-06-09T09:52:59.0994425Z             },
2026-06-09T09:52:59.0994511Z             {
2026-06-09T09:52:59.0994624Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-09T09:52:59.0994716Z               "line": 140
2026-06-09T09:52:59.0994793Z             }
2026-06-09T09:52:59.0994883Z           ]
2026-06-09T09:52:59.0994973Z         },
2026-06-09T09:52:59.0995055Z         "unit": {
2026-06-09T09:52:59.0995150Z           "complete": true,
2026-06-09T09:52:59.0995235Z           "evidence": [
2026-06-09T09:52:59.0995322Z             {
2026-06-09T09:52:59.0995437Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.0995530Z               "line": 844
2026-06-09T09:52:59.0995622Z             },
2026-06-09T09:52:59.0995704Z             {
2026-06-09T09:52:59.0995831Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0995925Z               "line": 1079
2026-06-09T09:52:59.0996012Z             },
2026-06-09T09:52:59.0996195Z             {
2026-06-09T09:52:59.0996324Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0996415Z               "line": 1109
2026-06-09T09:52:59.0996496Z             },
2026-06-09T09:52:59.0996581Z             {
2026-06-09T09:52:59.0996697Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-09T09:52:59.0996857Z               "line": 1129
2026-06-09T09:52:59.0996944Z             },
2026-06-09T09:52:59.0997030Z             {
2026-06-09T09:52:59.0997163Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-09T09:52:59.0997254Z               "line": 602
2026-06-09T09:52:59.0997345Z             },
2026-06-09T09:52:59.0997425Z             {
2026-06-09T09:52:59.0997545Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0997627Z               "line": 148
2026-06-09T09:52:59.0997716Z             },
2026-06-09T09:52:59.0997802Z             {
2026-06-09T09:52:59.0997913Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0998012Z               "line": 169
2026-06-09T09:52:59.0998098Z             },
2026-06-09T09:52:59.0998184Z             {
2026-06-09T09:52:59.0998295Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0998383Z               "line": 181
2026-06-09T09:52:59.0998474Z             },
2026-06-09T09:52:59.0998561Z             {
2026-06-09T09:52:59.0998684Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-09T09:52:59.0998769Z               "line": 202
2026-06-09T09:52:59.0998855Z             },
2026-06-09T09:52:59.0998932Z             {
2026-06-09T09:52:59.0999140Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0999237Z               "line": 375
2026-06-09T09:52:59.0999318Z             },
2026-06-09T09:52:59.0999398Z             {
2026-06-09T09:52:59.0999504Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.0999599Z               "line": 407
2026-06-09T09:52:59.0999680Z             },
2026-06-09T09:52:59.0999813Z             {
2026-06-09T09:52:59.0999923Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1000004Z               "line": 6943
2026-06-09T09:52:59.1000095Z             }
2026-06-09T09:52:59.1000172Z           ]
2026-06-09T09:52:59.1000257Z         }
2026-06-09T09:52:59.1000342Z       }
2026-06-09T09:52:59.1000428Z     },
2026-06-09T09:52:59.1000520Z     {
2026-06-09T09:52:59.1000614Z       "id": "REQ-MESH-5",
2026-06-09T09:52:59.1002056Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-09T09:52:59.1002161Z       "requiredStages": [
2026-06-09T09:52:59.1002265Z         "impl",
2026-06-09T09:52:59.1002356Z         "unit"
2026-06-09T09:52:59.1002438Z       ],
2026-06-09T09:52:59.1002528Z       "stages": {
2026-06-09T09:52:59.1002608Z         "doc": {
2026-06-09T09:52:59.1002709Z           "complete": false,
2026-06-09T09:52:59.1002800Z           "evidence": []
2026-06-09T09:52:59.1002909Z         },
2026-06-09T09:52:59.1003000Z         "impl": {
2026-06-09T09:52:59.1003087Z           "complete": true,
2026-06-09T09:52:59.1003181Z           "evidence": [
2026-06-09T09:52:59.1003262Z             {
2026-06-09T09:52:59.1003392Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1003481Z               "line": 61
2026-06-09T09:52:59.1003563Z             },
2026-06-09T09:52:59.1003649Z             {
2026-06-09T09:52:59.1003768Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1003862Z               "line": 109
2026-06-09T09:52:59.1003942Z             },
2026-06-09T09:52:59.1004132Z             {
2026-06-09T09:52:59.1004259Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1004346Z               "line": 104
2026-06-09T09:52:59.1004432Z             },
2026-06-09T09:52:59.1004517Z             {
2026-06-09T09:52:59.1004642Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1004818Z               "line": 105
2026-06-09T09:52:59.1004903Z             },
2026-06-09T09:52:59.1004990Z             {
2026-06-09T09:52:59.1005119Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1005208Z               "line": 85
2026-06-09T09:52:59.1005291Z             },
2026-06-09T09:52:59.1005376Z             {
2026-06-09T09:52:59.1005500Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1005591Z               "line": 234
2026-06-09T09:52:59.1005677Z             },
2026-06-09T09:52:59.1005757Z             {
2026-06-09T09:52:59.1005882Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1005973Z               "line": 298
2026-06-09T09:52:59.1006062Z             },
2026-06-09T09:52:59.1006148Z             {
2026-06-09T09:52:59.1006269Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1006358Z               "line": 687
2026-06-09T09:52:59.1006438Z             },
2026-06-09T09:52:59.1006528Z             {
2026-06-09T09:52:59.1006638Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.1006732Z               "line": 101
2026-06-09T09:52:59.1006822Z             },
2026-06-09T09:52:59.1006903Z             {
2026-06-09T09:52:59.1007018Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.1007107Z               "line": 193
2026-06-09T09:52:59.1007199Z             }
2026-06-09T09:52:59.1007281Z           ]
2026-06-09T09:52:59.1007366Z         },
2026-06-09T09:52:59.1007456Z         "int": {
2026-06-09T09:52:59.1007547Z           "complete": false,
2026-06-09T09:52:59.1007637Z           "evidence": []
2026-06-09T09:52:59.1007732Z         },
2026-06-09T09:52:59.1007819Z         "unit": {
2026-06-09T09:52:59.1007910Z           "complete": true,
2026-06-09T09:52:59.1008000Z           "evidence": [
2026-06-09T09:52:59.1008085Z             {
2026-06-09T09:52:59.1008206Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1008305Z               "line": 927
2026-06-09T09:52:59.1008385Z             },
2026-06-09T09:52:59.1008473Z             {
2026-06-09T09:52:59.1008577Z               "path": "crates/spt-store/src/roster.rs",
2026-06-09T09:52:59.1008673Z               "line": 462
2026-06-09T09:52:59.1008763Z             }
2026-06-09T09:52:59.1008845Z           ]
2026-06-09T09:52:59.1008929Z         }
2026-06-09T09:52:59.1009112Z       }
2026-06-09T09:52:59.1009188Z     },
2026-06-09T09:52:59.1009272Z     {
2026-06-09T09:52:59.1009362Z       "id": "REQ-MESH-6",
2026-06-09T09:52:59.1010698Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-09T09:52:59.1010812Z       "requiredStages": [
2026-06-09T09:52:59.1010903Z         "impl",
2026-06-09T09:52:59.1010984Z         "unit"
2026-06-09T09:52:59.1011066Z       ],
2026-06-09T09:52:59.1011151Z       "stages": {
2026-06-09T09:52:59.1011236Z         "doc": {
2026-06-09T09:52:59.1011332Z           "complete": false,
2026-06-09T09:52:59.1011424Z           "evidence": []
2026-06-09T09:52:59.1011507Z         },
2026-06-09T09:52:59.1011593Z         "impl": {
2026-06-09T09:52:59.1011688Z           "complete": true,
2026-06-09T09:52:59.1011778Z           "evidence": [
2026-06-09T09:52:59.1011862Z             {
2026-06-09T09:52:59.1011972Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1012191Z               "line": 3033
2026-06-09T09:52:59.1012277Z             }
2026-06-09T09:52:59.1012349Z           ]
2026-06-09T09:52:59.1012440Z         },
2026-06-09T09:52:59.1012515Z         "int": {
2026-06-09T09:52:59.1012606Z           "complete": false,
2026-06-09T09:52:59.1012684Z           "evidence": []
2026-06-09T09:52:59.1012859Z         },
2026-06-09T09:52:59.1012945Z         "unit": {
2026-06-09T09:52:59.1013036Z           "complete": true,
2026-06-09T09:52:59.1013126Z           "evidence": [
2026-06-09T09:52:59.1013207Z             {
2026-06-09T09:52:59.1013308Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1013398Z               "line": 7448
2026-06-09T09:52:59.1013469Z             },
2026-06-09T09:52:59.1013555Z             {
2026-06-09T09:52:59.1013656Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1013745Z               "line": 7475
2026-06-09T09:52:59.1013836Z             },
2026-06-09T09:52:59.1013919Z             {
2026-06-09T09:52:59.1014027Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1014113Z               "line": 7499
2026-06-09T09:52:59.1014195Z             }
2026-06-09T09:52:59.1014277Z           ]
2026-06-09T09:52:59.1014361Z         }
2026-06-09T09:52:59.1014446Z       }
2026-06-09T09:52:59.1014522Z     },
2026-06-09T09:52:59.1014613Z     {
2026-06-09T09:52:59.1014701Z       "id": "REQ-MIGRATE-1",
2026-06-09T09:52:59.1014877Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-09T09:52:59.1014969Z       "requiredStages": [],
2026-06-09T09:52:59.1015059Z       "stages": {
2026-06-09T09:52:59.1015144Z         "doc": {
2026-06-09T09:52:59.1015236Z           "complete": false,
2026-06-09T09:52:59.1015331Z           "evidence": []
2026-06-09T09:52:59.1015411Z         },
2026-06-09T09:52:59.1015502Z         "impl": {
2026-06-09T09:52:59.1015593Z           "complete": false,
2026-06-09T09:52:59.1015688Z           "evidence": []
2026-06-09T09:52:59.1015773Z         },
2026-06-09T09:52:59.1015861Z         "int": {
2026-06-09T09:52:59.1015960Z           "complete": false,
2026-06-09T09:52:59.1016046Z           "evidence": []
2026-06-09T09:52:59.1016132Z         },
2026-06-09T09:52:59.1016213Z         "unit": {
2026-06-09T09:52:59.1016312Z           "complete": false,
2026-06-09T09:52:59.1016412Z           "evidence": []
2026-06-09T09:52:59.1016500Z         }
2026-06-09T09:52:59.1016585Z       }
2026-06-09T09:52:59.1016665Z     },
2026-06-09T09:52:59.1016747Z     {
2026-06-09T09:52:59.1016838Z       "id": "REQ-MSG-1",
2026-06-09T09:52:59.1017277Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-09T09:52:59.1017382Z       "requiredStages": [
2026-06-09T09:52:59.1017468Z         "impl",
2026-06-09T09:52:59.1017574Z         "unit",
2026-06-09T09:52:59.1017667Z         "int"
2026-06-09T09:52:59.1017769Z       ],
2026-06-09T09:52:59.1017869Z       "stages": {
2026-06-09T09:52:59.1017973Z         "doc": {
2026-06-09T09:52:59.1018084Z           "complete": false,
2026-06-09T09:52:59.1018188Z           "evidence": []
2026-06-09T09:52:59.1018297Z         },
2026-06-09T09:52:59.1018394Z         "impl": {
2026-06-09T09:52:59.1018498Z           "complete": true,
2026-06-09T09:52:59.1018589Z           "evidence": [
2026-06-09T09:52:59.1018689Z             {
2026-06-09T09:52:59.1018823Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1018918Z               "line": 28
2026-06-09T09:52:59.1019118Z             },
2026-06-09T09:52:59.1019208Z             {
2026-06-09T09:52:59.1019338Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1019433Z               "line": 94
2026-06-09T09:52:59.1019532Z             },
2026-06-09T09:52:59.1019634Z             {
2026-06-09T09:52:59.1019744Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1019847Z               "line": 127
2026-06-09T09:52:59.1020085Z             },
2026-06-09T09:52:59.1020189Z             {
2026-06-09T09:52:59.1020309Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1020428Z               "line": 149
2026-06-09T09:52:59.1020528Z             },
2026-06-09T09:52:59.1020609Z             {
2026-06-09T09:52:59.1020734Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1020933Z               "line": 174
2026-06-09T09:52:59.1021034Z             },
2026-06-09T09:52:59.1021125Z             {
2026-06-09T09:52:59.1021253Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T09:52:59.1021359Z               "line": 18
2026-06-09T09:52:59.1021444Z             },
2026-06-09T09:52:59.1021549Z             {
2026-06-09T09:52:59.1021664Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.1021767Z               "line": 13
2026-06-09T09:52:59.1021859Z             },
2026-06-09T09:52:59.1021955Z             {
2026-06-09T09:52:59.1022082Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.1022181Z               "line": 61
2026-06-09T09:52:59.1022287Z             },
2026-06-09T09:52:59.1022380Z             {
2026-06-09T09:52:59.1022503Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T09:52:59.1022609Z               "line": 10
2026-06-09T09:52:59.1022695Z             }
2026-06-09T09:52:59.1022799Z           ]
2026-06-09T09:52:59.1022890Z         },
2026-06-09T09:52:59.1022990Z         "int": {
2026-06-09T09:52:59.1023085Z           "complete": true,
2026-06-09T09:52:59.1023200Z           "evidence": [
2026-06-09T09:52:59.1023290Z             {
2026-06-09T09:52:59.1023452Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T09:52:59.1023554Z               "line": 9
2026-06-09T09:52:59.1023643Z             },
2026-06-09T09:52:59.1023743Z             {
2026-06-09T09:52:59.1023883Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T09:52:59.1023992Z               "line": 70
2026-06-09T09:52:59.1024096Z             },
2026-06-09T09:52:59.1024183Z             {
2026-06-09T09:52:59.1024339Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T09:52:59.1024435Z               "line": 129
2026-06-09T09:52:59.1024541Z             }
2026-06-09T09:52:59.1024630Z           ]
2026-06-09T09:52:59.1024740Z         },
2026-06-09T09:52:59.1024846Z         "unit": {
2026-06-09T09:52:59.1024939Z           "complete": true,
2026-06-09T09:52:59.1025043Z           "evidence": [
2026-06-09T09:52:59.1025130Z             {
2026-06-09T09:52:59.1025266Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1025365Z               "line": 203
2026-06-09T09:52:59.1025466Z             },
2026-06-09T09:52:59.1025567Z             {
2026-06-09T09:52:59.1025690Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1025805Z               "line": 232
2026-06-09T09:52:59.1025891Z             },
2026-06-09T09:52:59.1025995Z             {
2026-06-09T09:52:59.1026111Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1026220Z               "line": 277
2026-06-09T09:52:59.1026324Z             },
2026-06-09T09:52:59.1026421Z             {
2026-06-09T09:52:59.1026558Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1026653Z               "line": 300
2026-06-09T09:52:59.1026760Z             },
2026-06-09T09:52:59.1026849Z             {
2026-06-09T09:52:59.1026973Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-09T09:52:59.1027088Z               "line": 324
2026-06-09T09:52:59.1027177Z             },
2026-06-09T09:52:59.1027278Z             {
2026-06-09T09:52:59.1027394Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T09:52:59.1027497Z               "line": 203
2026-06-09T09:52:59.1027587Z             },
2026-06-09T09:52:59.1027692Z             {
2026-06-09T09:52:59.1027828Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T09:52:59.1027918Z               "line": 236
2026-06-09T09:52:59.1028110Z             },
2026-06-09T09:52:59.1028195Z             {
2026-06-09T09:52:59.1028319Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T09:52:59.1028396Z               "line": 250
2026-06-09T09:52:59.1028472Z             },
2026-06-09T09:52:59.1028557Z             {
2026-06-09T09:52:59.1028744Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T09:52:59.1028862Z               "line": 262
2026-06-09T09:52:59.1029039Z             },
2026-06-09T09:52:59.1029135Z             {
2026-06-09T09:52:59.1029244Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.1029340Z               "line": 158
2026-06-09T09:52:59.1029435Z             },
2026-06-09T09:52:59.1029525Z             {
2026-06-09T09:52:59.1029655Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-09T09:52:59.1029754Z               "line": 241
2026-06-09T09:52:59.1029859Z             },
2026-06-09T09:52:59.1029946Z             {
2026-06-09T09:52:59.1030069Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T09:52:59.1030179Z               "line": 68
2026-06-09T09:52:59.1030266Z             },
2026-06-09T09:52:59.1030369Z             {
2026-06-09T09:52:59.1030482Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T09:52:59.1030588Z               "line": 77
2026-06-09T09:52:59.1030689Z             },
2026-06-09T09:52:59.1030773Z             {
2026-06-09T09:52:59.1030893Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T09:52:59.1030984Z               "line": 83
2026-06-09T09:52:59.1031083Z             },
2026-06-09T09:52:59.1031174Z             {
2026-06-09T09:52:59.1031294Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-09T09:52:59.1031407Z               "line": 102
2026-06-09T09:52:59.1031493Z             }
2026-06-09T09:52:59.1031594Z           ]
2026-06-09T09:52:59.1031685Z         }
2026-06-09T09:52:59.1031784Z       }
2026-06-09T09:52:59.1031871Z     },
2026-06-09T09:52:59.1031966Z     {
2026-06-09T09:52:59.1032070Z       "id": "REQ-MSG-2",
2026-06-09T09:52:59.1032357Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-09T09:52:59.1032472Z       "requiredStages": [
2026-06-09T09:52:59.1032562Z         "impl",
2026-06-09T09:52:59.1032665Z         "unit"
2026-06-09T09:52:59.1032755Z       ],
2026-06-09T09:52:59.1032861Z       "stages": {
2026-06-09T09:52:59.1032959Z         "doc": {
2026-06-09T09:52:59.1033059Z           "complete": false,
2026-06-09T09:52:59.1033164Z           "evidence": []
2026-06-09T09:52:59.1033256Z         },
2026-06-09T09:52:59.1033359Z         "impl": {
2026-06-09T09:52:59.1033455Z           "complete": true,
2026-06-09T09:52:59.1033555Z           "evidence": [
2026-06-09T09:52:59.1033659Z             {
2026-06-09T09:52:59.1033770Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1037785Z               "line": 11
2026-06-09T09:52:59.1037911Z             },
2026-06-09T09:52:59.1038006Z             {
2026-06-09T09:52:59.1038151Z               "path": "crates/spt/src/main.rs",
2026-06-09T09:52:59.1038252Z               "line": 8
2026-06-09T09:52:59.1038351Z             }
2026-06-09T09:52:59.1038436Z           ]
2026-06-09T09:52:59.1038536Z         },
2026-06-09T09:52:59.1038632Z         "int": {
2026-06-09T09:52:59.1038755Z           "complete": false,
2026-06-09T09:52:59.1038855Z           "evidence": []
2026-06-09T09:52:59.1039023Z         },
2026-06-09T09:52:59.1039108Z         "unit": {
2026-06-09T09:52:59.1039224Z           "complete": true,
2026-06-09T09:52:59.1039337Z           "evidence": [
2026-06-09T09:52:59.1039427Z             {
2026-06-09T09:52:59.1039552Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1039652Z               "line": 5189
2026-06-09T09:52:59.1039752Z             },
2026-06-09T09:52:59.1039853Z             {
2026-06-09T09:52:59.1039961Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1040066Z               "line": 5238
2026-06-09T09:52:59.1040286Z             },
2026-06-09T09:52:59.1040371Z             {
2026-06-09T09:52:59.1040478Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1040577Z               "line": 5261
2026-06-09T09:52:59.1040657Z             },
2026-06-09T09:52:59.1040734Z             {
2026-06-09T09:52:59.1040840Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1041119Z               "line": 6699
2026-06-09T09:52:59.1041206Z             },
2026-06-09T09:52:59.1041286Z             {
2026-06-09T09:52:59.1041396Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1041487Z               "line": 6708
2026-06-09T09:52:59.1041573Z             },
2026-06-09T09:52:59.1041662Z             {
2026-06-09T09:52:59.1041764Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1041864Z               "line": 6722
2026-06-09T09:52:59.1041949Z             }
2026-06-09T09:52:59.1042040Z           ]
2026-06-09T09:52:59.1042131Z         }
2026-06-09T09:52:59.1042216Z       }
2026-06-09T09:52:59.1042315Z     },
2026-06-09T09:52:59.1042408Z     {
2026-06-09T09:52:59.1042521Z       "id": "REQ-MSG-3",
2026-06-09T09:52:59.1042917Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-09T09:52:59.1043042Z       "requiredStages": [
2026-06-09T09:52:59.1043146Z         "impl",
2026-06-09T09:52:59.1043235Z         "unit",
2026-06-09T09:52:59.1043316Z         "int"
2026-06-09T09:52:59.1043397Z       ],
2026-06-09T09:52:59.1043491Z       "stages": {
2026-06-09T09:52:59.1043576Z         "doc": {
2026-06-09T09:52:59.1043672Z           "complete": false,
2026-06-09T09:52:59.1043767Z           "evidence": []
2026-06-09T09:52:59.1043853Z         },
2026-06-09T09:52:59.1043943Z         "impl": {
2026-06-09T09:52:59.1044034Z           "complete": true,
2026-06-09T09:52:59.1044130Z           "evidence": [
2026-06-09T09:52:59.1044214Z             {
2026-06-09T09:52:59.1044345Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-09T09:52:59.1044444Z               "line": 19
2026-06-09T09:52:59.1044529Z             },
2026-06-09T09:52:59.1044616Z             {
2026-06-09T09:52:59.1044731Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.1044826Z               "line": 21
2026-06-09T09:52:59.1044907Z             },
2026-06-09T09:52:59.1045003Z             {
2026-06-09T09:52:59.1045122Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.1045211Z               "line": 48
2026-06-09T09:52:59.1045303Z             },
2026-06-09T09:52:59.1045384Z             {
2026-06-09T09:52:59.1045497Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.1045590Z               "line": 142
2026-06-09T09:52:59.1045680Z             }
2026-06-09T09:52:59.1045759Z           ]
2026-06-09T09:52:59.1045841Z         },
2026-06-09T09:52:59.1045923Z         "int": {
2026-06-09T09:52:59.1046018Z           "complete": true,
2026-06-09T09:52:59.1046117Z           "evidence": [
2026-06-09T09:52:59.1046226Z             {
2026-06-09T09:52:59.1046382Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T09:52:59.1046481Z               "line": 10
2026-06-09T09:52:59.1046572Z             },
2026-06-09T09:52:59.1046673Z             {
2026-06-09T09:52:59.1046810Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-09T09:52:59.1046916Z               "line": 70
2026-06-09T09:52:59.1047007Z             }
2026-06-09T09:52:59.1047110Z           ]
2026-06-09T09:52:59.1047217Z         },
2026-06-09T09:52:59.1047311Z         "unit": {
2026-06-09T09:52:59.1047425Z           "complete": true,
2026-06-09T09:52:59.1047526Z           "evidence": [
2026-06-09T09:52:59.1047626Z             {
2026-06-09T09:52:59.1047750Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.1047865Z               "line": 196
2026-06-09T09:52:59.1047954Z             },
2026-06-09T09:52:59.1048031Z             {
2026-06-09T09:52:59.1048142Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.1048312Z               "line": 215
2026-06-09T09:52:59.1048403Z             },
2026-06-09T09:52:59.1048480Z             {
2026-06-09T09:52:59.1048594Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-09T09:52:59.1048688Z               "line": 237
2026-06-09T09:52:59.1048869Z             }
2026-06-09T09:52:59.1049043Z           ]
2026-06-09T09:52:59.1049129Z         }
2026-06-09T09:52:59.1049221Z       }
2026-06-09T09:52:59.1049301Z     },
2026-06-09T09:52:59.1049391Z     {
2026-06-09T09:52:59.1049487Z       "id": "REQ-MSG-4",
2026-06-09T09:52:59.1050418Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-09T09:52:59.1050517Z       "requiredStages": [
2026-06-09T09:52:59.1050607Z         "impl",
2026-06-09T09:52:59.1050747Z         "unit",
2026-06-09T09:52:59.1050841Z         "int"
2026-06-09T09:52:59.1050927Z       ],
2026-06-09T09:52:59.1051023Z       "stages": {
2026-06-09T09:52:59.1051109Z         "doc": {
2026-06-09T09:52:59.1051217Z           "complete": false,
2026-06-09T09:52:59.1051309Z           "evidence": []
2026-06-09T09:52:59.1051428Z         },
2026-06-09T09:52:59.1051536Z         "impl": {
2026-06-09T09:52:59.1051631Z           "complete": true,
2026-06-09T09:52:59.1051752Z           "evidence": [
2026-06-09T09:52:59.1051841Z             {
2026-06-09T09:52:59.1051970Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1052066Z               "line": 16
2026-06-09T09:52:59.1052166Z             },
2026-06-09T09:52:59.1052265Z             {
2026-06-09T09:52:59.1052376Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1052467Z               "line": 25
2026-06-09T09:52:59.1052537Z             },
2026-06-09T09:52:59.1052614Z             {
2026-06-09T09:52:59.1052729Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1052824Z               "line": 47
2026-06-09T09:52:59.1052909Z             },
2026-06-09T09:52:59.1052991Z             {
2026-06-09T09:52:59.1053114Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1053209Z               "line": 363
2026-06-09T09:52:59.1053302Z             },
2026-06-09T09:52:59.1053387Z             {
2026-06-09T09:52:59.1053501Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1053597Z               "line": 2178
2026-06-09T09:52:59.1053678Z             }
2026-06-09T09:52:59.1053767Z           ]
2026-06-09T09:52:59.1053848Z         },
2026-06-09T09:52:59.1053939Z         "int": {
2026-06-09T09:52:59.1054028Z           "complete": true,
2026-06-09T09:52:59.1054122Z           "evidence": [
2026-06-09T09:52:59.1054212Z             {
2026-06-09T09:52:59.1054342Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T09:52:59.1054432Z               "line": 93
2026-06-09T09:52:59.1054518Z             },
2026-06-09T09:52:59.1054609Z             {
2026-06-09T09:52:59.1054728Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-09T09:52:59.1054813Z               "line": 123
2026-06-09T09:52:59.1054909Z             }
2026-06-09T09:52:59.1054981Z           ]
2026-06-09T09:52:59.1055090Z         },
2026-06-09T09:52:59.1055176Z         "unit": {
2026-06-09T09:52:59.1055281Z           "complete": true,
2026-06-09T09:52:59.1055367Z           "evidence": [
2026-06-09T09:52:59.1055462Z             {
2026-06-09T09:52:59.1055591Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1055686Z               "line": 62
2026-06-09T09:52:59.1055791Z             },
2026-06-09T09:52:59.1055882Z             {
2026-06-09T09:52:59.1056015Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1056106Z               "line": 73
2026-06-09T09:52:59.1056216Z             },
2026-06-09T09:52:59.1056319Z             {
2026-06-09T09:52:59.1056611Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1056719Z               "line": 84
2026-06-09T09:52:59.1056815Z             },
2026-06-09T09:52:59.1056909Z             {
2026-06-09T09:52:59.1057012Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1057113Z               "line": 96
2026-06-09T09:52:59.1057294Z             },
2026-06-09T09:52:59.1057380Z             {
2026-06-09T09:52:59.1057496Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1057586Z               "line": 105
2026-06-09T09:52:59.1057675Z             },
2026-06-09T09:52:59.1057757Z             {
2026-06-09T09:52:59.1057871Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-09T09:52:59.1057971Z               "line": 120
2026-06-09T09:52:59.1058052Z             }
2026-06-09T09:52:59.1058144Z           ]
2026-06-09T09:52:59.1058229Z         }
2026-06-09T09:52:59.1058314Z       }
2026-06-09T09:52:59.1058397Z     },
2026-06-09T09:52:59.1058487Z     {
2026-06-09T09:52:59.1058587Z       "id": "REQ-NET-1",
2026-06-09T09:52:59.1058769Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-09T09:52:59.1058872Z       "requiredStages": [
2026-06-09T09:52:59.1059040Z         "impl",
2026-06-09T09:52:59.1059122Z         "unit",
2026-06-09T09:52:59.1059201Z         "int"
2026-06-09T09:52:59.1059300Z       ],
2026-06-09T09:52:59.1059401Z       "stages": {
2026-06-09T09:52:59.1059494Z         "doc": {
2026-06-09T09:52:59.1059612Z           "complete": false,
2026-06-09T09:52:59.1059704Z           "evidence": []
2026-06-09T09:52:59.1059800Z         },
2026-06-09T09:52:59.1059884Z         "impl": {
2026-06-09T09:52:59.1059985Z           "complete": true,
2026-06-09T09:52:59.1060086Z           "evidence": [
2026-06-09T09:52:59.1060175Z             {
2026-06-09T09:52:59.1060314Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1060414Z               "line": 54
2026-06-09T09:52:59.1060518Z             },
2026-06-09T09:52:59.1060615Z             {
2026-06-09T09:52:59.1060748Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1060857Z               "line": 594
2026-06-09T09:52:59.1060949Z             },
2026-06-09T09:52:59.1061058Z             {
2026-06-09T09:52:59.1061182Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-09T09:52:59.1061293Z               "line": 69
2026-06-09T09:52:59.1061373Z             },
2026-06-09T09:52:59.1061444Z             {
2026-06-09T09:52:59.1061579Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1061669Z               "line": 97
2026-06-09T09:52:59.1061758Z             },
2026-06-09T09:52:59.1061840Z             {
2026-06-09T09:52:59.1061965Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1062063Z               "line": 159
2026-06-09T09:52:59.1062148Z             },
2026-06-09T09:52:59.1062234Z             {
2026-06-09T09:52:59.1062350Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1062459Z               "line": 175
2026-06-09T09:52:59.1062544Z             },
2026-06-09T09:52:59.1062631Z             {
2026-06-09T09:52:59.1062754Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1062845Z               "line": 190
2026-06-09T09:52:59.1062936Z             },
2026-06-09T09:52:59.1063022Z             {
2026-06-09T09:52:59.1063140Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1063232Z               "line": 271
2026-06-09T09:52:59.1063327Z             },
2026-06-09T09:52:59.1063417Z             {
2026-06-09T09:52:59.1063533Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1063632Z               "line": 306
2026-06-09T09:52:59.1063713Z             },
2026-06-09T09:52:59.1063804Z             {
2026-06-09T09:52:59.1063918Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1064027Z               "line": 312
2026-06-09T09:52:59.1064128Z             },
2026-06-09T09:52:59.1064328Z             {
2026-06-09T09:52:59.1064450Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1064541Z               "line": 318
2026-06-09T09:52:59.1064639Z             },
2026-06-09T09:52:59.1064729Z             {
2026-06-09T09:52:59.1064864Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1065078Z               "line": 334
2026-06-09T09:52:59.1065169Z             },
2026-06-09T09:52:59.1065269Z             {
2026-06-09T09:52:59.1065431Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1065584Z               "line": 354
2026-06-09T09:52:59.1065678Z             },
2026-06-09T09:52:59.1065784Z             {
2026-06-09T09:52:59.1065913Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T09:52:59.1065997Z               "line": 35
2026-06-09T09:52:59.1066085Z             },
2026-06-09T09:52:59.1066165Z             {
2026-06-09T09:52:59.1066294Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T09:52:59.1066385Z               "line": 85
2026-06-09T09:52:59.1066476Z             },
2026-06-09T09:52:59.1066565Z             {
2026-06-09T09:52:59.1066676Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.1066771Z               "line": 135
2026-06-09T09:52:59.1066856Z             },
2026-06-09T09:52:59.1066947Z             {
2026-06-09T09:52:59.1067053Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1067157Z               "line": 2024
2026-06-09T09:52:59.1067246Z             },
2026-06-09T09:52:59.1067327Z             {
2026-06-09T09:52:59.1067446Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1067530Z               "line": 17
2026-06-09T09:52:59.1067620Z             }
2026-06-09T09:52:59.1067711Z           ]
2026-06-09T09:52:59.1067793Z         },
2026-06-09T09:52:59.1067887Z         "int": {
2026-06-09T09:52:59.1067983Z           "complete": true,
2026-06-09T09:52:59.1068079Z           "evidence": [
2026-06-09T09:52:59.1068174Z             {
2026-06-09T09:52:59.1068298Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1068389Z               "line": 341
2026-06-09T09:52:59.1068475Z             },
2026-06-09T09:52:59.1068574Z             {
2026-06-09T09:52:59.1068699Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1068818Z               "line": 605
2026-06-09T09:52:59.1068899Z             },
2026-06-09T09:52:59.1069071Z             {
2026-06-09T09:52:59.1069199Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1069300Z               "line": 878
2026-06-09T09:52:59.1069399Z             }
2026-06-09T09:52:59.1069485Z           ]
2026-06-09T09:52:59.1069592Z         },
2026-06-09T09:52:59.1069682Z         "unit": {
2026-06-09T09:52:59.1069794Z           "complete": true,
2026-06-09T09:52:59.1069899Z           "evidence": [
2026-06-09T09:52:59.1069990Z             {
2026-06-09T09:52:59.1070130Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1070226Z               "line": 650
2026-06-09T09:52:59.1070326Z             },
2026-06-09T09:52:59.1070411Z             {
2026-06-09T09:52:59.1070540Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1070627Z               "line": 685
2026-06-09T09:52:59.1070722Z             },
2026-06-09T09:52:59.1070812Z             {
2026-06-09T09:52:59.1070937Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1071032Z               "line": 932
2026-06-09T09:52:59.1071122Z             },
2026-06-09T09:52:59.1071213Z             {
2026-06-09T09:52:59.1071336Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-09T09:52:59.1071427Z               "line": 152
2026-06-09T09:52:59.1071518Z             },
2026-06-09T09:52:59.1071599Z             {
2026-06-09T09:52:59.1071727Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1071814Z               "line": 442
2026-06-09T09:52:59.1072023Z             },
2026-06-09T09:52:59.1072109Z             {
2026-06-09T09:52:59.1072229Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1072323Z               "line": 456
2026-06-09T09:52:59.1072405Z             },
2026-06-09T09:52:59.1072506Z             {
2026-06-09T09:52:59.1072704Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1072804Z               "line": 475
2026-06-09T09:52:59.1072896Z             },
2026-06-09T09:52:59.1072971Z             {
2026-06-09T09:52:59.1073114Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T09:52:59.1073205Z               "line": 119
2026-06-09T09:52:59.1073300Z             },
2026-06-09T09:52:59.1073385Z             {
2026-06-09T09:52:59.1073510Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-09T09:52:59.1073605Z               "line": 162
2026-06-09T09:52:59.1073691Z             },
2026-06-09T09:52:59.1073778Z             {
2026-06-09T09:52:59.1073896Z               "path": "crates/spt-store/src/spool.rs",
2026-06-09T09:52:59.1073982Z               "line": 492
2026-06-09T09:52:59.1074073Z             },
2026-06-09T09:52:59.1074154Z             {
2026-06-09T09:52:59.1074268Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1074354Z               "line": 615
2026-06-09T09:52:59.1074455Z             },
2026-06-09T09:52:59.1074535Z             {
2026-06-09T09:52:59.1074645Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1074737Z               "line": 1004
2026-06-09T09:52:59.1074812Z             }
2026-06-09T09:52:59.1074902Z           ]
2026-06-09T09:52:59.1074982Z         }
2026-06-09T09:52:59.1075068Z       }
2026-06-09T09:52:59.1075148Z     },
2026-06-09T09:52:59.1075238Z     {
2026-06-09T09:52:59.1075337Z       "id": "REQ-NET-2",
2026-06-09T09:52:59.1075514Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-09T09:52:59.1075609Z       "requiredStages": [
2026-06-09T09:52:59.1075700Z         "impl"
2026-06-09T09:52:59.1075791Z       ],
2026-06-09T09:52:59.1075881Z       "stages": {
2026-06-09T09:52:59.1075967Z         "doc": {
2026-06-09T09:52:59.1076063Z           "complete": false,
2026-06-09T09:52:59.1076148Z           "evidence": []
2026-06-09T09:52:59.1076238Z         },
2026-06-09T09:52:59.1076326Z         "impl": {
2026-06-09T09:52:59.1076425Z           "complete": true,
2026-06-09T09:52:59.1076515Z           "evidence": [
2026-06-09T09:52:59.1076601Z             {
2026-06-09T09:52:59.1076725Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.1076811Z               "line": 57
2026-06-09T09:52:59.1076906Z             },
2026-06-09T09:52:59.1076988Z             {
2026-06-09T09:52:59.1077116Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1077206Z               "line": 71
2026-06-09T09:52:59.1077294Z             },
2026-06-09T09:52:59.1077383Z             {
2026-06-09T09:52:59.1077498Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1077599Z               "line": 81
2026-06-09T09:52:59.1077680Z             },
2026-06-09T09:52:59.1077769Z             {
2026-06-09T09:52:59.1077887Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1077978Z               "line": 159
2026-06-09T09:52:59.1078076Z             },
2026-06-09T09:52:59.1078156Z             {
2026-06-09T09:52:59.1078276Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1078368Z               "line": 175
2026-06-09T09:52:59.1078457Z             },
2026-06-09T09:52:59.1078538Z             {
2026-06-09T09:52:59.1078658Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-09T09:52:59.1078743Z               "line": 190
2026-06-09T09:52:59.1078824Z             }
2026-06-09T09:52:59.1078935Z           ]
2026-06-09T09:52:59.1079105Z         },
2026-06-09T09:52:59.1079197Z         "int": {
2026-06-09T09:52:59.1079292Z           "complete": false,
2026-06-09T09:52:59.1079487Z           "evidence": []
2026-06-09T09:52:59.1079574Z         },
2026-06-09T09:52:59.1079659Z         "unit": {
2026-06-09T09:52:59.1079754Z           "complete": true,
2026-06-09T09:52:59.1079842Z           "evidence": [
2026-06-09T09:52:59.1079932Z             {
2026-06-09T09:52:59.1080045Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.1080256Z               "line": 402
2026-06-09T09:52:59.1080344Z             }
2026-06-09T09:52:59.1080425Z           ]
2026-06-09T09:52:59.1080516Z         }
2026-06-09T09:52:59.1080596Z       }
2026-06-09T09:52:59.1080681Z     },
2026-06-09T09:52:59.1080766Z     {
2026-06-09T09:52:59.1080863Z       "id": "REQ-NET-3",
2026-06-09T09:52:59.1081048Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-09T09:52:59.1081139Z       "requiredStages": [
2026-06-09T09:52:59.1081229Z         "impl",
2026-06-09T09:52:59.1081310Z         "unit"
2026-06-09T09:52:59.1081396Z       ],
2026-06-09T09:52:59.1081488Z       "stages": {
2026-06-09T09:52:59.1081578Z         "doc": {
2026-06-09T09:52:59.1081672Z           "complete": false,
2026-06-09T09:52:59.1081764Z           "evidence": []
2026-06-09T09:52:59.1081854Z         },
2026-06-09T09:52:59.1081935Z         "impl": {
2026-06-09T09:52:59.1082035Z           "complete": true,
2026-06-09T09:52:59.1082132Z           "evidence": [
2026-06-09T09:52:59.1082221Z             {
2026-06-09T09:52:59.1082336Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.1082422Z               "line": 39
2026-06-09T09:52:59.1082512Z             },
2026-06-09T09:52:59.1082593Z             {
2026-06-09T09:52:59.1082709Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.1082794Z               "line": 182
2026-06-09T09:52:59.1082878Z             },
2026-06-09T09:52:59.1082970Z             {
2026-06-09T09:52:59.1083081Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-09T09:52:59.1083170Z               "line": 333
2026-06-09T09:52:59.1083260Z             },
2026-06-09T09:52:59.1083345Z             {
2026-06-09T09:52:59.1083466Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T09:52:59.1083555Z               "line": 36
2026-06-09T09:52:59.1083640Z             },
2026-06-09T09:52:59.1083718Z             {
2026-06-09T09:52:59.1083846Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1083936Z               "line": 158
2026-06-09T09:52:59.1084023Z             },
2026-06-09T09:52:59.1084104Z             {
2026-06-09T09:52:59.1084232Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1084323Z               "line": 212
2026-06-09T09:52:59.1084409Z             },
2026-06-09T09:52:59.1084494Z             {
2026-06-09T09:52:59.1084614Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1084705Z               "line": 233
2026-06-09T09:52:59.1084790Z             },
2026-06-09T09:52:59.1084876Z             {
2026-06-09T09:52:59.1085006Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1085099Z               "line": 291
2026-06-09T09:52:59.1085186Z             },
2026-06-09T09:52:59.1085272Z             {
2026-06-09T09:52:59.1085395Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1085485Z               "line": 310
2026-06-09T09:52:59.1085566Z             },
2026-06-09T09:52:59.1085657Z             {
2026-06-09T09:52:59.1085759Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1085864Z               "line": 348
2026-06-09T09:52:59.1085941Z             },
2026-06-09T09:52:59.1086018Z             {
2026-06-09T09:52:59.1086136Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1086217Z               "line": 393
2026-06-09T09:52:59.1086308Z             },
2026-06-09T09:52:59.1086393Z             {
2026-06-09T09:52:59.1086517Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1086599Z               "line": 406
2026-06-09T09:52:59.1086775Z             },
2026-06-09T09:52:59.1086861Z             {
2026-06-09T09:52:59.1086980Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.1087075Z               "line": 29
2026-06-09T09:52:59.1087161Z             },
2026-06-09T09:52:59.1087248Z             {
2026-06-09T09:52:59.1087433Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.1087525Z               "line": 72
2026-06-09T09:52:59.1087614Z             },
2026-06-09T09:52:59.1087695Z             {
2026-06-09T09:52:59.1087815Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.1087901Z               "line": 123
2026-06-09T09:52:59.1087995Z             }
2026-06-09T09:52:59.1088077Z           ]
2026-06-09T09:52:59.1088164Z         },
2026-06-09T09:52:59.1088249Z         "int": {
2026-06-09T09:52:59.1088343Z           "complete": false,
2026-06-09T09:52:59.1088443Z           "evidence": []
2026-06-09T09:52:59.1088524Z         },
2026-06-09T09:52:59.1088622Z         "unit": {
2026-06-09T09:52:59.1088712Z           "complete": true,
2026-06-09T09:52:59.1088808Z           "evidence": [
2026-06-09T09:52:59.1088894Z             {
2026-06-09T09:52:59.1089094Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T09:52:59.1089190Z               "line": 223
2026-06-09T09:52:59.1089275Z             },
2026-06-09T09:52:59.1089365Z             {
2026-06-09T09:52:59.1089481Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T09:52:59.1089576Z               "line": 351
2026-06-09T09:52:59.1089670Z             },
2026-06-09T09:52:59.1089752Z             {
2026-06-09T09:52:59.1089876Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-09T09:52:59.1089971Z               "line": 502
2026-06-09T09:52:59.1090052Z             },
2026-06-09T09:52:59.1090134Z             {
2026-06-09T09:52:59.1090262Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T09:52:59.1090358Z               "line": 93
2026-06-09T09:52:59.1090444Z             },
2026-06-09T09:52:59.1090529Z             {
2026-06-09T09:52:59.1090638Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-09T09:52:59.1090731Z               "line": 142
2026-06-09T09:52:59.1090816Z             },
2026-06-09T09:52:59.1090900Z             {
2026-06-09T09:52:59.1091029Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.1091119Z               "line": 315
2026-06-09T09:52:59.1091208Z             },
2026-06-09T09:52:59.1091293Z             {
2026-06-09T09:52:59.1091408Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.1091499Z               "line": 355
2026-06-09T09:52:59.1091593Z             },
2026-06-09T09:52:59.1091675Z             {
2026-06-09T09:52:59.1091789Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-09T09:52:59.1091889Z               "line": 494
2026-06-09T09:52:59.1091975Z             }
2026-06-09T09:52:59.1092062Z           ]
2026-06-09T09:52:59.1092152Z         }
2026-06-09T09:52:59.1092232Z       }
2026-06-09T09:52:59.1092310Z     },
2026-06-09T09:52:59.1092391Z     {
2026-06-09T09:52:59.1092486Z       "id": "REQ-NODE-IDENTITY",
2026-06-09T09:52:59.1092715Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-09T09:52:59.1092829Z       "requiredStages": [
2026-06-09T09:52:59.1092919Z         "impl",
2026-06-09T09:52:59.1092997Z         "unit"
2026-06-09T09:52:59.1093081Z       ],
2026-06-09T09:52:59.1093158Z       "stages": {
2026-06-09T09:52:59.1093249Z         "doc": {
2026-06-09T09:52:59.1093340Z           "complete": false,
2026-06-09T09:52:59.1093433Z           "evidence": []
2026-06-09T09:52:59.1093520Z         },
2026-06-09T09:52:59.1093607Z         "impl": {
2026-06-09T09:52:59.1093711Z           "complete": true,
2026-06-09T09:52:59.1093796Z           "evidence": [
2026-06-09T09:52:59.1093881Z             {
2026-06-09T09:52:59.1094006Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1094205Z               "line": 60
2026-06-09T09:52:59.1094293Z             },
2026-06-09T09:52:59.1094374Z             {
2026-06-09T09:52:59.1094501Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1094593Z               "line": 68
2026-06-09T09:52:59.1094678Z             },
2026-06-09T09:52:59.1094850Z             {
2026-06-09T09:52:59.1094974Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1095064Z               "line": 86
2026-06-09T09:52:59.1095150Z             },
2026-06-09T09:52:59.1095237Z             {
2026-06-09T09:52:59.1095350Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1095450Z               "line": 120
2026-06-09T09:52:59.1095532Z             },
2026-06-09T09:52:59.1095617Z             {
2026-06-09T09:52:59.1095736Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1095828Z               "line": 127
2026-06-09T09:52:59.1095914Z             },
2026-06-09T09:52:59.1095998Z             {
2026-06-09T09:52:59.1096116Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1096208Z               "line": 143
2026-06-09T09:52:59.1096291Z             },
2026-06-09T09:52:59.1096377Z             {
2026-06-09T09:52:59.1096486Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T09:52:59.1096583Z               "line": 16
2026-06-09T09:52:59.1096672Z             }
2026-06-09T09:52:59.1096758Z           ]
2026-06-09T09:52:59.1096840Z         },
2026-06-09T09:52:59.1096930Z         "int": {
2026-06-09T09:52:59.1097020Z           "complete": false,
2026-06-09T09:52:59.1097111Z           "evidence": []
2026-06-09T09:52:59.1097197Z         },
2026-06-09T09:52:59.1097287Z         "unit": {
2026-06-09T09:52:59.1097426Z           "complete": true,
2026-06-09T09:52:59.1097512Z           "evidence": [
2026-06-09T09:52:59.1097607Z             {
2026-06-09T09:52:59.1097726Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1097817Z               "line": 199
2026-06-09T09:52:59.1097908Z             },
2026-06-09T09:52:59.1097988Z             {
2026-06-09T09:52:59.1098109Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1098193Z               "line": 218
2026-06-09T09:52:59.1098284Z             },
2026-06-09T09:52:59.1098376Z             {
2026-06-09T09:52:59.1098489Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1098579Z               "line": 234
2026-06-09T09:52:59.1098656Z             },
2026-06-09T09:52:59.1098743Z             {
2026-06-09T09:52:59.1098860Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-09T09:52:59.1099036Z               "line": 256
2026-06-09T09:52:59.1099126Z             },
2026-06-09T09:52:59.1099206Z             {
2026-06-09T09:52:59.1099325Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T09:52:59.1099411Z               "line": 124
2026-06-09T09:52:59.1099502Z             },
2026-06-09T09:52:59.1099591Z             {
2026-06-09T09:52:59.1099707Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T09:52:59.1099802Z               "line": 140
2026-06-09T09:52:59.1099887Z             },
2026-06-09T09:52:59.1099974Z             {
2026-06-09T09:52:59.1100083Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-09T09:52:59.1100183Z               "line": 155
2026-06-09T09:52:59.1100269Z             }
2026-06-09T09:52:59.1100356Z           ]
2026-06-09T09:52:59.1100441Z         }
2026-06-09T09:52:59.1100527Z       }
2026-06-09T09:52:59.1100613Z     },
2026-06-09T09:52:59.1100689Z     {
2026-06-09T09:52:59.1100793Z       "id": "REQ-NOTIF-1",
2026-06-09T09:52:59.1101146Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-09T09:52:59.1101252Z       "requiredStages": [
2026-06-09T09:52:59.1101338Z         "impl",
2026-06-09T09:52:59.1101427Z         "unit",
2026-06-09T09:52:59.1101517Z         "int"
2026-06-09T09:52:59.1101702Z       ],
2026-06-09T09:52:59.1101791Z       "stages": {
2026-06-09T09:52:59.1101882Z         "doc": {
2026-06-09T09:52:59.1101973Z           "complete": false,
2026-06-09T09:52:59.1102064Z           "evidence": []
2026-06-09T09:52:59.1102148Z         },
2026-06-09T09:52:59.1102235Z         "impl": {
2026-06-09T09:52:59.1102416Z           "complete": true,
2026-06-09T09:52:59.1102507Z           "evidence": [
2026-06-09T09:52:59.1102593Z             {
2026-06-09T09:52:59.1102717Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1102806Z               "line": 514
2026-06-09T09:52:59.1102880Z             },
2026-06-09T09:52:59.1102975Z             {
2026-06-09T09:52:59.1103084Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1103184Z               "line": 30
2026-06-09T09:52:59.1103270Z             },
2026-06-09T09:52:59.1103351Z             {
2026-06-09T09:52:59.1103470Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1103561Z               "line": 62
2026-06-09T09:52:59.1103651Z             },
2026-06-09T09:52:59.1103732Z             {
2026-06-09T09:52:59.1103853Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1103947Z               "line": 86
2026-06-09T09:52:59.1104023Z             },
2026-06-09T09:52:59.1104124Z             {
2026-06-09T09:52:59.1104234Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1104327Z               "line": 100
2026-06-09T09:52:59.1104408Z             },
2026-06-09T09:52:59.1104494Z             {
2026-06-09T09:52:59.1107056Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1107171Z               "line": 135
2026-06-09T09:52:59.1107261Z             },
2026-06-09T09:52:59.1107347Z             {
2026-06-09T09:52:59.1107481Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1107571Z               "line": 180
2026-06-09T09:52:59.1107657Z             },
2026-06-09T09:52:59.1107762Z             {
2026-06-09T09:52:59.1107880Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1107972Z               "line": 251
2026-06-09T09:52:59.1108054Z             },
2026-06-09T09:52:59.1108139Z             {
2026-06-09T09:52:59.1108248Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1108344Z               "line": 361
2026-06-09T09:52:59.1108434Z             },
2026-06-09T09:52:59.1108515Z             {
2026-06-09T09:52:59.1108626Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1108721Z               "line": 421
2026-06-09T09:52:59.1108806Z             },
2026-06-09T09:52:59.1108887Z             {
2026-06-09T09:52:59.1109115Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1109207Z               "line": 24
2026-06-09T09:52:59.1109289Z             },
2026-06-09T09:52:59.1109374Z             {
2026-06-09T09:52:59.1109496Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1109591Z               "line": 34
2026-06-09T09:52:59.1109672Z             },
2026-06-09T09:52:59.1109761Z             {
2026-06-09T09:52:59.1109890Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1109971Z               "line": 60
2026-06-09T09:52:59.1110057Z             },
2026-06-09T09:52:59.1110147Z             {
2026-06-09T09:52:59.1110263Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1110358Z               "line": 82
2026-06-09T09:52:59.1110443Z             },
2026-06-09T09:52:59.1110529Z             {
2026-06-09T09:52:59.1110643Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1110734Z               "line": 94
2026-06-09T09:52:59.1110819Z             },
2026-06-09T09:52:59.1110902Z             {
2026-06-09T09:52:59.1111029Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.1111115Z               "line": 43
2026-06-09T09:52:59.1111197Z             },
2026-06-09T09:52:59.1111435Z             {
2026-06-09T09:52:59.1111560Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.1111649Z               "line": 96
2026-06-09T09:52:59.1111735Z             },
2026-06-09T09:52:59.1111822Z             {
2026-06-09T09:52:59.1111936Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T09:52:59.1112125Z               "line": 20
2026-06-09T09:52:59.1112215Z             },
2026-06-09T09:52:59.1112300Z             {
2026-06-09T09:52:59.1112413Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T09:52:59.1112509Z               "line": 30
2026-06-09T09:52:59.1112596Z             },
2026-06-09T09:52:59.1112676Z             {
2026-06-09T09:52:59.1112790Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T09:52:59.1112882Z               "line": 50
2026-06-09T09:52:59.1112967Z             },
2026-06-09T09:52:59.1113047Z             {
2026-06-09T09:52:59.1113168Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1113267Z               "line": 28
2026-06-09T09:52:59.1113348Z             },
2026-06-09T09:52:59.1113440Z             {
2026-06-09T09:52:59.1113549Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1113644Z               "line": 126
2026-06-09T09:52:59.1113725Z             },
2026-06-09T09:52:59.1113816Z             {
2026-06-09T09:52:59.1113930Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1114020Z               "line": 161
2026-06-09T09:52:59.1114107Z             },
2026-06-09T09:52:59.1114187Z             {
2026-06-09T09:52:59.1114306Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1114394Z               "line": 202
2026-06-09T09:52:59.1114488Z             },
2026-06-09T09:52:59.1114573Z             {
2026-06-09T09:52:59.1114684Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1114780Z               "line": 213
2026-06-09T09:52:59.1114859Z             },
2026-06-09T09:52:59.1114954Z             {
2026-06-09T09:52:59.1115059Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1115160Z               "line": 238
2026-06-09T09:52:59.1115249Z             },
2026-06-09T09:52:59.1115335Z             {
2026-06-09T09:52:59.1115450Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1115545Z               "line": 261
2026-06-09T09:52:59.1115636Z             },
2026-06-09T09:52:59.1115718Z             {
2026-06-09T09:52:59.1115842Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1115931Z               "line": 63
2026-06-09T09:52:59.1116013Z             }
2026-06-09T09:52:59.1116104Z           ]
2026-06-09T09:52:59.1116185Z         },
2026-06-09T09:52:59.1116270Z         "int": {
2026-06-09T09:52:59.1116367Z           "complete": true,
2026-06-09T09:52:59.1116460Z           "evidence": [
2026-06-09T09:52:59.1116551Z             {
2026-06-09T09:52:59.1116676Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1116775Z               "line": 285
2026-06-09T09:52:59.1116856Z             },
2026-06-09T09:52:59.1116948Z             {
2026-06-09T09:52:59.1117071Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-09T09:52:59.1117166Z               "line": 102
2026-06-09T09:52:59.1117246Z             },
2026-06-09T09:52:59.1117332Z             {
2026-06-09T09:52:59.1117459Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1117544Z               "line": 614
2026-06-09T09:52:59.1117640Z             },
2026-06-09T09:52:59.1117727Z             {
2026-06-09T09:52:59.1117845Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1117940Z               "line": 1007
2026-06-09T09:52:59.1118026Z             }
2026-06-09T09:52:59.1118116Z           ]
2026-06-09T09:52:59.1118192Z         },
2026-06-09T09:52:59.1118285Z         "unit": {
2026-06-09T09:52:59.1118385Z           "complete": true,
2026-06-09T09:52:59.1118551Z           "evidence": [
2026-06-09T09:52:59.1118642Z             {
2026-06-09T09:52:59.1118765Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1118856Z               "line": 514
2026-06-09T09:52:59.1119023Z             },
2026-06-09T09:52:59.1119118Z             {
2026-06-09T09:52:59.1119229Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1119418Z               "line": 563
2026-06-09T09:52:59.1119506Z             },
2026-06-09T09:52:59.1119587Z             {
2026-06-09T09:52:59.1119709Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1119801Z               "line": 666
2026-06-09T09:52:59.1119887Z             },
2026-06-09T09:52:59.1119971Z             {
2026-06-09T09:52:59.1120085Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1120171Z               "line": 698
2026-06-09T09:52:59.1120256Z             },
2026-06-09T09:52:59.1120340Z             {
2026-06-09T09:52:59.1120450Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1120551Z               "line": 766
2026-06-09T09:52:59.1120645Z             },
2026-06-09T09:52:59.1120726Z             {
2026-06-09T09:52:59.1120842Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1120932Z               "line": 824
2026-06-09T09:52:59.1121027Z             },
2026-06-09T09:52:59.1121108Z             {
2026-06-09T09:52:59.1121223Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1121322Z               "line": 1045
2026-06-09T09:52:59.1121409Z             },
2026-06-09T09:52:59.1121495Z             {
2026-06-09T09:52:59.1121618Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1121718Z               "line": 157
2026-06-09T09:52:59.1121801Z             },
2026-06-09T09:52:59.1121890Z             {
2026-06-09T09:52:59.1122014Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1122101Z               "line": 250
2026-06-09T09:52:59.1122195Z             },
2026-06-09T09:52:59.1122281Z             {
2026-06-09T09:52:59.1122401Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-09T09:52:59.1122491Z               "line": 273
2026-06-09T09:52:59.1122581Z             },
2026-06-09T09:52:59.1122675Z             {
2026-06-09T09:52:59.1122794Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.1122893Z               "line": 341
2026-06-09T09:52:59.1122978Z             },
2026-06-09T09:52:59.1123070Z             {
2026-06-09T09:52:59.1123193Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-09T09:52:59.1123278Z               "line": 373
2026-06-09T09:52:59.1123365Z             },
2026-06-09T09:52:59.1123447Z             {
2026-06-09T09:52:59.1123579Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-09T09:52:59.1123665Z               "line": 131
2026-06-09T09:52:59.1123756Z             },
2026-06-09T09:52:59.1123847Z             {
2026-06-09T09:52:59.1123971Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T09:52:59.1124066Z               "line": 72
2026-06-09T09:52:59.1124147Z             },
2026-06-09T09:52:59.1124237Z             {
2026-06-09T09:52:59.1124348Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-09T09:52:59.1124447Z               "line": 97
2026-06-09T09:52:59.1124543Z             },
2026-06-09T09:52:59.1124629Z             {
2026-06-09T09:52:59.1124743Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1124834Z               "line": 379
2026-06-09T09:52:59.1124925Z             },
2026-06-09T09:52:59.1125006Z             {
2026-06-09T09:52:59.1125129Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1125220Z               "line": 417
2026-06-09T09:52:59.1125302Z             },
2026-06-09T09:52:59.1125387Z             {
2026-06-09T09:52:59.1125495Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1125585Z               "line": 433
2026-06-09T09:52:59.1125777Z             },
2026-06-09T09:52:59.1125867Z             {
2026-06-09T09:52:59.1125978Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1126068Z               "line": 472
2026-06-09T09:52:59.1126157Z             },
2026-06-09T09:52:59.1126240Z             {
2026-06-09T09:52:59.1126358Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1126525Z               "line": 489
2026-06-09T09:52:59.1126621Z             },
2026-06-09T09:52:59.1126716Z             {
2026-06-09T09:52:59.1126830Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1126922Z               "line": 517
2026-06-09T09:52:59.1127002Z             },
2026-06-09T09:52:59.1127092Z             {
2026-06-09T09:52:59.1127194Z               "path": "crates/spt-store/src/notif.rs",
2026-06-09T09:52:59.1127279Z               "line": 548
2026-06-09T09:52:59.1127368Z             },
2026-06-09T09:52:59.1127450Z             {
2026-06-09T09:52:59.1127571Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1127664Z               "line": 455
2026-06-09T09:52:59.1127750Z             }
2026-06-09T09:52:59.1127831Z           ]
2026-06-09T09:52:59.1127912Z         }
2026-06-09T09:52:59.1128000Z       }
2026-06-09T09:52:59.1128090Z     },
2026-06-09T09:52:59.1128186Z     {
2026-06-09T09:52:59.1128287Z       "id": "REQ-NOTIF-2",
2026-06-09T09:52:59.1128554Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-09T09:52:59.1128658Z       "requiredStages": [
2026-06-09T09:52:59.1128743Z         "doc",
2026-06-09T09:52:59.1128835Z         "impl",
2026-06-09T09:52:59.1128920Z         "unit",
2026-06-09T09:52:59.1129087Z         "int"
2026-06-09T09:52:59.1129164Z       ],
2026-06-09T09:52:59.1129254Z       "stages": {
2026-06-09T09:52:59.1129339Z         "doc": {
2026-06-09T09:52:59.1129441Z           "complete": true,
2026-06-09T09:52:59.1129531Z           "evidence": [
2026-06-09T09:52:59.1129621Z             {
2026-06-09T09:52:59.1129726Z               "path": "CONTEXT.md",
2026-06-09T09:52:59.1129818Z               "line": 346
2026-06-09T09:52:59.1129906Z             },
2026-06-09T09:52:59.1129988Z             {
2026-06-09T09:52:59.1130094Z               "path": "docs/MANIFEST.md",
2026-06-09T09:52:59.1130189Z               "line": 62
2026-06-09T09:52:59.1130274Z             }
2026-06-09T09:52:59.1130366Z           ]
2026-06-09T09:52:59.1130447Z         },
2026-06-09T09:52:59.1130541Z         "impl": {
2026-06-09T09:52:59.1130631Z           "complete": true,
2026-06-09T09:52:59.1130731Z           "evidence": [
2026-06-09T09:52:59.1130821Z             {
2026-06-09T09:52:59.1130938Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1131034Z               "line": 280
2026-06-09T09:52:59.1131115Z             },
2026-06-09T09:52:59.1131210Z             {
2026-06-09T09:52:59.1131324Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1131421Z               "line": 294
2026-06-09T09:52:59.1131520Z             },
2026-06-09T09:52:59.1131606Z             {
2026-06-09T09:52:59.1131726Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1131812Z               "line": 319
2026-06-09T09:52:59.1131906Z             },
2026-06-09T09:52:59.1131988Z             {
2026-06-09T09:52:59.1132116Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.1132216Z               "line": 126
2026-06-09T09:52:59.1132303Z             },
2026-06-09T09:52:59.1132389Z             {
2026-06-09T09:52:59.1132507Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1132608Z               "line": 72
2026-06-09T09:52:59.1132699Z             },
2026-06-09T09:52:59.1132778Z             {
2026-06-09T09:52:59.1132889Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1132981Z               "line": 1506
2026-06-09T09:52:59.1133070Z             },
2026-06-09T09:52:59.1133150Z             {
2026-06-09T09:52:59.1133368Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1133467Z               "line": 1555
2026-06-09T09:52:59.1133547Z             },
2026-06-09T09:52:59.1133634Z             {
2026-06-09T09:52:59.1133735Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1133829Z               "line": 1634
2026-06-09T09:52:59.1134007Z             },
2026-06-09T09:52:59.1134092Z             {
2026-06-09T09:52:59.1134201Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1134288Z               "line": 1673
2026-06-09T09:52:59.1134373Z             }
2026-06-09T09:52:59.1134454Z           ]
2026-06-09T09:52:59.1134540Z         },
2026-06-09T09:52:59.1134621Z         "int": {
2026-06-09T09:52:59.1134721Z           "complete": true,
2026-06-09T09:52:59.1134811Z           "evidence": [
2026-06-09T09:52:59.1134889Z             {
2026-06-09T09:52:59.1135022Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1135112Z               "line": 740
2026-06-09T09:52:59.1135214Z             },
2026-06-09T09:52:59.1135293Z             {
2026-06-09T09:52:59.1135422Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1135514Z               "line": 1160
2026-06-09T09:52:59.1135594Z             }
2026-06-09T09:52:59.1135684Z           ]
2026-06-09T09:52:59.1135775Z         },
2026-06-09T09:52:59.1135867Z         "unit": {
2026-06-09T09:52:59.1135956Z           "complete": true,
2026-06-09T09:52:59.1136060Z           "evidence": [
2026-06-09T09:52:59.1136145Z             {
2026-06-09T09:52:59.1136261Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1136356Z               "line": 894
2026-06-09T09:52:59.1136437Z             },
2026-06-09T09:52:59.1136528Z             {
2026-06-09T09:52:59.1136637Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1136732Z               "line": 962
2026-06-09T09:52:59.1136819Z             },
2026-06-09T09:52:59.1136900Z             {
2026-06-09T09:52:59.1137014Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1137104Z               "line": 5487
2026-06-09T09:52:59.1137195Z             },
2026-06-09T09:52:59.1137276Z             {
2026-06-09T09:52:59.1137380Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1137472Z               "line": 5542
2026-06-09T09:52:59.1137562Z             }
2026-06-09T09:52:59.1137648Z           ]
2026-06-09T09:52:59.1137729Z         }
2026-06-09T09:52:59.1137820Z       }
2026-06-09T09:52:59.1137905Z     },
2026-06-09T09:52:59.1137996Z     {
2026-06-09T09:52:59.1138102Z       "id": "REQ-PAIR-1",
2026-06-09T09:52:59.1138210Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-09T09:52:59.1138310Z       "requiredStages": [
2026-06-09T09:52:59.1138400Z         "impl",
2026-06-09T09:52:59.1138490Z         "unit",
2026-06-09T09:52:59.1138570Z         "int"
2026-06-09T09:52:59.1138660Z       ],
2026-06-09T09:52:59.1138751Z       "stages": {
2026-06-09T09:52:59.1138838Z         "doc": {
2026-06-09T09:52:59.1139032Z           "complete": false,
2026-06-09T09:52:59.1139128Z           "evidence": []
2026-06-09T09:52:59.1139218Z         },
2026-06-09T09:52:59.1139308Z         "impl": {
2026-06-09T09:52:59.1139405Z           "complete": true,
2026-06-09T09:52:59.1139500Z           "evidence": [
2026-06-09T09:52:59.1139580Z             {
2026-06-09T09:52:59.1139715Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1139804Z               "line": 27
2026-06-09T09:52:59.1139895Z             },
2026-06-09T09:52:59.1139981Z             {
2026-06-09T09:52:59.1140115Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1140209Z               "line": 88
2026-06-09T09:52:59.1140296Z             },
2026-06-09T09:52:59.1140383Z             {
2026-06-09T09:52:59.1140511Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1140611Z               "line": 110
2026-06-09T09:52:59.1140692Z             },
2026-06-09T09:52:59.1140921Z             {
2026-06-09T09:52:59.1141050Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1141138Z               "line": 153
2026-06-09T09:52:59.1141228Z             },
2026-06-09T09:52:59.1141310Z             {
2026-06-09T09:52:59.1141437Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1141618Z               "line": 182
2026-06-09T09:52:59.1141709Z             },
2026-06-09T09:52:59.1141798Z             {
2026-06-09T09:52:59.1141923Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1142014Z               "line": 29
2026-06-09T09:52:59.1142095Z             },
2026-06-09T09:52:59.1142180Z             {
2026-06-09T09:52:59.1142324Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-09T09:52:59.1142419Z               "line": 31
2026-06-09T09:52:59.1142505Z             },
2026-06-09T09:52:59.1142587Z             {
2026-06-09T09:52:59.1142720Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1142810Z               "line": 44
2026-06-09T09:52:59.1142897Z             },
2026-06-09T09:52:59.1142991Z             {
2026-06-09T09:52:59.1143110Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1143207Z               "line": 171
2026-06-09T09:52:59.1143292Z             },
2026-06-09T09:52:59.1143382Z             {
2026-06-09T09:52:59.1143498Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1143593Z               "line": 376
2026-06-09T09:52:59.1143677Z             }
2026-06-09T09:52:59.1143762Z           ]
2026-06-09T09:52:59.1143848Z         },
2026-06-09T09:52:59.1143929Z         "int": {
2026-06-09T09:52:59.1144027Z           "complete": true,
2026-06-09T09:52:59.1144117Z           "evidence": [
2026-06-09T09:52:59.1144209Z             {
2026-06-09T09:52:59.1144332Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1144422Z               "line": 575
2026-06-09T09:52:59.1144515Z             },
2026-06-09T09:52:59.1144595Z             {
2026-06-09T09:52:59.1144718Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1144810Z               "line": 792
2026-06-09T09:52:59.1144900Z             }
2026-06-09T09:52:59.1144985Z           ]
2026-06-09T09:52:59.1145071Z         },
2026-06-09T09:52:59.1145163Z         "unit": {
2026-06-09T09:52:59.1145248Z           "complete": true,
2026-06-09T09:52:59.1145343Z           "evidence": [
2026-06-09T09:52:59.1145429Z             {
2026-06-09T09:52:59.1145558Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1145648Z               "line": 236
2026-06-09T09:52:59.1145730Z             },
2026-06-09T09:52:59.1145816Z             {
2026-06-09T09:52:59.1145934Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-09T09:52:59.1146020Z               "line": 349
2026-06-09T09:52:59.1146108Z             },
2026-06-09T09:52:59.1146192Z             {
2026-06-09T09:52:59.1146311Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1146398Z               "line": 194
2026-06-09T09:52:59.1146488Z             },
2026-06-09T09:52:59.1146568Z             {
2026-06-09T09:52:59.1146687Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1146773Z               "line": 216
2026-06-09T09:52:59.1146859Z             },
2026-06-09T09:52:59.1146953Z             {
2026-06-09T09:52:59.1147078Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1147179Z               "line": 230
2026-06-09T09:52:59.1147259Z             },
2026-06-09T09:52:59.1147350Z             {
2026-06-09T09:52:59.1147474Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1147569Z               "line": 242
2026-06-09T09:52:59.1147660Z             },
2026-06-09T09:52:59.1147746Z             {
2026-06-09T09:52:59.1147874Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1148042Z               "line": 256
2026-06-09T09:52:59.1148137Z             },
2026-06-09T09:52:59.1148227Z             {
2026-06-09T09:52:59.1148352Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1148446Z               "line": 270
2026-06-09T09:52:59.1148594Z             },
2026-06-09T09:52:59.1148681Z             {
2026-06-09T09:52:59.1148808Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1148903Z               "line": 277
2026-06-09T09:52:59.1149069Z             },
2026-06-09T09:52:59.1149149Z             {
2026-06-09T09:52:59.1149278Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-09T09:52:59.1149378Z               "line": 295
2026-06-09T09:52:59.1149464Z             },
2026-06-09T09:52:59.1149544Z             {
2026-06-09T09:52:59.1149669Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1149759Z               "line": 968
2026-06-09T09:52:59.1149849Z             },
2026-06-09T09:52:59.1149936Z             {
2026-06-09T09:52:59.1150060Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1150149Z               "line": 1051
2026-06-09T09:52:59.1150222Z             },
2026-06-09T09:52:59.1150308Z             {
2026-06-09T09:52:59.1150517Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1150608Z               "line": 1121
2026-06-09T09:52:59.1150693Z             },
2026-06-09T09:52:59.1150774Z             {
2026-06-09T09:52:59.1150914Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1150999Z               "line": 1182
2026-06-09T09:52:59.1151089Z             },
2026-06-09T09:52:59.1151176Z             {
2026-06-09T09:52:59.1151300Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1151395Z               "line": 1238
2026-06-09T09:52:59.1151476Z             },
2026-06-09T09:52:59.1151563Z             {
2026-06-09T09:52:59.1151689Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1151784Z               "line": 1457
2026-06-09T09:52:59.1151875Z             }
2026-06-09T09:52:59.1151955Z           ]
2026-06-09T09:52:59.1152039Z         }
2026-06-09T09:52:59.1152120Z       }
2026-06-09T09:52:59.1152207Z     },
2026-06-09T09:52:59.1152293Z     {
2026-06-09T09:52:59.1152392Z       "id": "REQ-PAIR-2",
2026-06-09T09:52:59.1152532Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-09T09:52:59.1152627Z       "requiredStages": [],
2026-06-09T09:52:59.1152721Z       "stages": {
2026-06-09T09:52:59.1152803Z         "doc": {
2026-06-09T09:52:59.1152903Z           "complete": false,
2026-06-09T09:52:59.1152998Z           "evidence": []
2026-06-09T09:52:59.1153079Z         },
2026-06-09T09:52:59.1153171Z         "impl": {
2026-06-09T09:52:59.1153260Z           "complete": false,
2026-06-09T09:52:59.1153355Z           "evidence": []
2026-06-09T09:52:59.1153433Z         },
2026-06-09T09:52:59.1153528Z         "int": {
2026-06-09T09:52:59.1153618Z           "complete": false,
2026-06-09T09:52:59.1153713Z           "evidence": []
2026-06-09T09:52:59.1153800Z         },
2026-06-09T09:52:59.1153885Z         "unit": {
2026-06-09T09:52:59.1153980Z           "complete": false,
2026-06-09T09:52:59.1154068Z           "evidence": []
2026-06-09T09:52:59.1154163Z         }
2026-06-09T09:52:59.1154242Z       }
2026-06-09T09:52:59.1154341Z     },
2026-06-09T09:52:59.1154427Z     {
2026-06-09T09:52:59.1154517Z       "id": "REQ-PAIR-3",
2026-06-09T09:52:59.1154667Z       "title": "Fetch current pairing code from any paired node",
2026-06-09T09:52:59.1154764Z       "requiredStages": [
2026-06-09T09:52:59.1154850Z         "impl",
2026-06-09T09:52:59.1154930Z         "unit"
2026-06-09T09:52:59.1155026Z       ],
2026-06-09T09:52:59.1155117Z       "stages": {
2026-06-09T09:52:59.1155202Z         "doc": {
2026-06-09T09:52:59.1155302Z           "complete": false,
2026-06-09T09:52:59.1155389Z           "evidence": []
2026-06-09T09:52:59.1155593Z         },
2026-06-09T09:52:59.1155680Z         "impl": {
2026-06-09T09:52:59.1155775Z           "complete": true,
2026-06-09T09:52:59.1155870Z           "evidence": [
2026-06-09T09:52:59.1155955Z             {
2026-06-09T09:52:59.1156066Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1156242Z               "line": 2275
2026-06-09T09:52:59.1156334Z             },
2026-06-09T09:52:59.1156414Z             {
2026-06-09T09:52:59.1156528Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1156620Z               "line": 2344
2026-06-09T09:52:59.1156719Z             },
2026-06-09T09:52:59.1156828Z             {
2026-06-09T09:52:59.1156930Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1157025Z               "line": 2580
2026-06-09T09:52:59.1157109Z             }
2026-06-09T09:52:59.1157199Z           ]
2026-06-09T09:52:59.1157285Z         },
2026-06-09T09:52:59.1157367Z         "int": {
2026-06-09T09:52:59.1157471Z           "complete": false,
2026-06-09T09:52:59.1157561Z           "evidence": []
2026-06-09T09:52:59.1157648Z         },
2026-06-09T09:52:59.1157729Z         "unit": {
2026-06-09T09:52:59.1157824Z           "complete": true,
2026-06-09T09:52:59.1157920Z           "evidence": [
2026-06-09T09:52:59.1158001Z             {
2026-06-09T09:52:59.1158110Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1158201Z               "line": 6855
2026-06-09T09:52:59.1158287Z             },
2026-06-09T09:52:59.1158377Z             {
2026-06-09T09:52:59.1158482Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1158574Z               "line": 7070
2026-06-09T09:52:59.1158654Z             },
2026-06-09T09:52:59.1158740Z             {
2026-06-09T09:52:59.1158840Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1158936Z               "line": 7644
2026-06-09T09:52:59.1159097Z             },
2026-06-09T09:52:59.1159188Z             {
2026-06-09T09:52:59.1159293Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1159387Z               "line": 7663
2026-06-09T09:52:59.1159477Z             },
2026-06-09T09:52:59.1159554Z             {
2026-06-09T09:52:59.1159662Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1159747Z               "line": 7687
2026-06-09T09:52:59.1159828Z             },
2026-06-09T09:52:59.1159915Z             {
2026-06-09T09:52:59.1160009Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1160099Z               "line": 7706
2026-06-09T09:52:59.1160172Z             },
2026-06-09T09:52:59.1160263Z             {
2026-06-09T09:52:59.1160371Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1160462Z               "line": 7719
2026-06-09T09:52:59.1160539Z             },
2026-06-09T09:52:59.1160643Z             {
2026-06-09T09:52:59.1160748Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1160835Z               "line": 7728
2026-06-09T09:52:59.1160911Z             }
2026-06-09T09:52:59.1160992Z           ]
2026-06-09T09:52:59.1161077Z         }
2026-06-09T09:52:59.1161164Z       }
2026-06-09T09:52:59.1161249Z     },
2026-06-09T09:52:59.1161335Z     {
2026-06-09T09:52:59.1161426Z       "id": "REQ-PAIR-4",
2026-06-09T09:52:59.1161545Z       "title": "Subnet naming on first pairing",
2026-06-09T09:52:59.1161645Z       "requiredStages": [
2026-06-09T09:52:59.1161731Z         "impl",
2026-06-09T09:52:59.1161822Z         "unit"
2026-06-09T09:52:59.1161902Z       ],
2026-06-09T09:52:59.1161993Z       "stages": {
2026-06-09T09:52:59.1162080Z         "doc": {
2026-06-09T09:52:59.1162175Z           "complete": false,
2026-06-09T09:52:59.1162264Z           "evidence": []
2026-06-09T09:52:59.1162354Z         },
2026-06-09T09:52:59.1162444Z         "impl": {
2026-06-09T09:52:59.1162534Z           "complete": true,
2026-06-09T09:52:59.1162623Z           "evidence": [
2026-06-09T09:52:59.1162705Z             {
2026-06-09T09:52:59.1162829Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-09T09:52:59.1163024Z               "line": 174
2026-06-09T09:52:59.1163120Z             }
2026-06-09T09:52:59.1163206Z           ]
2026-06-09T09:52:59.1163291Z         },
2026-06-09T09:52:59.1163378Z         "int": {
2026-06-09T09:52:59.1163468Z           "complete": false,
2026-06-09T09:52:59.1163563Z           "evidence": []
2026-06-09T09:52:59.1163759Z         },
2026-06-09T09:52:59.1163850Z         "unit": {
2026-06-09T09:52:59.1163949Z           "complete": true,
2026-06-09T09:52:59.1164036Z           "evidence": [
2026-06-09T09:52:59.1164130Z             {
2026-06-09T09:52:59.1164254Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1164346Z               "line": 1294
2026-06-09T09:52:59.1164436Z             }
2026-06-09T09:52:59.1164522Z           ]
2026-06-09T09:52:59.1164608Z         }
2026-06-09T09:52:59.1164690Z       }
2026-06-09T09:52:59.1164779Z     },
2026-06-09T09:52:59.1164864Z     {
2026-06-09T09:52:59.1164964Z       "id": "REQ-PAIR-5",
2026-06-09T09:52:59.1165272Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-09T09:52:59.1165367Z       "requiredStages": [
2026-06-09T09:52:59.1165495Z         "impl",
2026-06-09T09:52:59.1165596Z         "unit",
2026-06-09T09:52:59.1165687Z         "int"
2026-06-09T09:52:59.1165772Z       ],
2026-06-09T09:52:59.1165862Z       "stages": {
2026-06-09T09:52:59.1165945Z         "doc": {
2026-06-09T09:52:59.1166044Z           "complete": false,
2026-06-09T09:52:59.1166134Z           "evidence": []
2026-06-09T09:52:59.1166216Z         },
2026-06-09T09:52:59.1166307Z         "impl": {
2026-06-09T09:52:59.1166392Z           "complete": true,
2026-06-09T09:52:59.1166482Z           "evidence": [
2026-06-09T09:52:59.1166564Z             {
2026-06-09T09:52:59.1166692Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1166787Z               "line": 44
2026-06-09T09:52:59.1166870Z             },
2026-06-09T09:52:59.1166960Z             {
2026-06-09T09:52:59.1167083Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1167175Z               "line": 96
2026-06-09T09:52:59.1167261Z             },
2026-06-09T09:52:59.1167340Z             {
2026-06-09T09:52:59.1167470Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1167562Z               "line": 107
2026-06-09T09:52:59.1167646Z             },
2026-06-09T09:52:59.1167726Z             {
2026-06-09T09:52:59.1167855Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1167937Z               "line": 124
2026-06-09T09:52:59.1168007Z             },
2026-06-09T09:52:59.1168093Z             {
2026-06-09T09:52:59.1168208Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1168303Z               "line": 155
2026-06-09T09:52:59.1168389Z             },
2026-06-09T09:52:59.1168475Z             {
2026-06-09T09:52:59.1168599Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1168694Z               "line": 195
2026-06-09T09:52:59.1168780Z             },
2026-06-09T09:52:59.1168861Z             {
2026-06-09T09:52:59.1169056Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1169148Z               "line": 251
2026-06-09T09:52:59.1169242Z             },
2026-06-09T09:52:59.1169328Z             {
2026-06-09T09:52:59.1169473Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1169566Z               "line": 33
2026-06-09T09:52:59.1169647Z             },
2026-06-09T09:52:59.1169734Z             {
2026-06-09T09:52:59.1169871Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1169966Z               "line": 45
2026-06-09T09:52:59.1170056Z             },
2026-06-09T09:52:59.1170137Z             {
2026-06-09T09:52:59.1170279Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1170374Z               "line": 59
2026-06-09T09:52:59.1170574Z             },
2026-06-09T09:52:59.1170654Z             {
2026-06-09T09:52:59.1170785Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1170879Z               "line": 376
2026-06-09T09:52:59.1170964Z             }
2026-06-09T09:52:59.1171052Z           ]
2026-06-09T09:52:59.1171222Z         },
2026-06-09T09:52:59.1173541Z         "int": {
2026-06-09T09:52:59.1173666Z           "complete": true,
2026-06-09T09:52:59.1173761Z           "evidence": [
2026-06-09T09:52:59.1173851Z             {
2026-06-09T09:52:59.1173986Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1174085Z               "line": 792
2026-06-09T09:52:59.1174165Z             },
2026-06-09T09:52:59.1174262Z             {
2026-06-09T09:52:59.1174400Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1174495Z               "line": 342
2026-06-09T09:52:59.1174586Z             }
2026-06-09T09:52:59.1174667Z           ]
2026-06-09T09:52:59.1174772Z         },
2026-06-09T09:52:59.1174858Z         "unit": {
2026-06-09T09:52:59.1174963Z           "complete": true,
2026-06-09T09:52:59.1175057Z           "evidence": [
2026-06-09T09:52:59.1175149Z             {
2026-06-09T09:52:59.1175278Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1175376Z               "line": 293
2026-06-09T09:52:59.1175462Z             },
2026-06-09T09:52:59.1175547Z             {
2026-06-09T09:52:59.1175675Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1175769Z               "line": 304
2026-06-09T09:52:59.1175855Z             },
2026-06-09T09:52:59.1175942Z             {
2026-06-09T09:52:59.1176060Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1176156Z               "line": 406
2026-06-09T09:52:59.1176238Z             },
2026-06-09T09:52:59.1176328Z             {
2026-06-09T09:52:59.1176471Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1176566Z               "line": 72
2026-06-09T09:52:59.1176652Z             },
2026-06-09T09:52:59.1176737Z             {
2026-06-09T09:52:59.1176881Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1176967Z               "line": 82
2026-06-09T09:52:59.1177062Z             },
2026-06-09T09:52:59.1177144Z             {
2026-06-09T09:52:59.1177277Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1177367Z               "line": 100
2026-06-09T09:52:59.1177449Z             },
2026-06-09T09:52:59.1177539Z             {
2026-06-09T09:52:59.1177672Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1177773Z               "line": 110
2026-06-09T09:52:59.1177859Z             },
2026-06-09T09:52:59.1177944Z             {
2026-06-09T09:52:59.1178083Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-09T09:52:59.1178169Z               "line": 125
2026-06-09T09:52:59.1178262Z             },
2026-06-09T09:52:59.1178347Z             {
2026-06-09T09:52:59.1178487Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1178582Z               "line": 1044
2026-06-09T09:52:59.1178667Z             },
2026-06-09T09:52:59.1178754Z             {
2026-06-09T09:52:59.1178878Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1179079Z               "line": 1110
2026-06-09T09:52:59.1179169Z             },
2026-06-09T09:52:59.1179254Z             {
2026-06-09T09:52:59.1179379Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1179464Z               "line": 1357
2026-06-09T09:52:59.1179554Z             }
2026-06-09T09:52:59.1179635Z           ]
2026-06-09T09:52:59.1179728Z         }
2026-06-09T09:52:59.1179817Z       }
2026-06-09T09:52:59.1179902Z     },
2026-06-09T09:52:59.1179989Z     {
2026-06-09T09:52:59.1180084Z       "id": "REQ-PAIR-6",
2026-06-09T09:52:59.1180484Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-09T09:52:59.1180583Z       "requiredStages": [
2026-06-09T09:52:59.1180674Z         "impl",
2026-06-09T09:52:59.1180763Z         "unit"
2026-06-09T09:52:59.1180844Z       ],
2026-06-09T09:52:59.1181025Z       "stages": {
2026-06-09T09:52:59.1181110Z         "doc": {
2026-06-09T09:52:59.1181205Z           "complete": false,
2026-06-09T09:52:59.1181297Z           "evidence": []
2026-06-09T09:52:59.1181383Z         },
2026-06-09T09:52:59.1181472Z         "impl": {
2026-06-09T09:52:59.1181563Z           "complete": true,
2026-06-09T09:52:59.1181654Z           "evidence": [
2026-06-09T09:52:59.1181740Z             {
2026-06-09T09:52:59.1181849Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1181941Z               "line": 2344
2026-06-09T09:52:59.1182031Z             },
2026-06-09T09:52:59.1182121Z             {
2026-06-09T09:52:59.1182217Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1182322Z               "line": 2580
2026-06-09T09:52:59.1182407Z             },
2026-06-09T09:52:59.1182493Z             {
2026-06-09T09:52:59.1182608Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.1182703Z               "line": 18
2026-06-09T09:52:59.1182789Z             },
2026-06-09T09:52:59.1182885Z             {
2026-06-09T09:52:59.1182998Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.1183085Z               "line": 49
2026-06-09T09:52:59.1183171Z             },
2026-06-09T09:52:59.1183262Z             {
2026-06-09T09:52:59.1183375Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.1183474Z               "line": 163
2026-06-09T09:52:59.1183560Z             }
2026-06-09T09:52:59.1183649Z           ]
2026-06-09T09:52:59.1183734Z         },
2026-06-09T09:52:59.1183825Z         "int": {
2026-06-09T09:52:59.1183916Z           "complete": false,
2026-06-09T09:52:59.1184016Z           "evidence": []
2026-06-09T09:52:59.1184116Z         },
2026-06-09T09:52:59.1184202Z         "unit": {
2026-06-09T09:52:59.1184316Z           "complete": true,
2026-06-09T09:52:59.1184411Z           "evidence": [
2026-06-09T09:52:59.1184503Z             {
2026-06-09T09:52:59.1184617Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1184735Z               "line": 7741
2026-06-09T09:52:59.1184851Z             },
2026-06-09T09:52:59.1184950Z             {
2026-06-09T09:52:59.1185079Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1185175Z               "line": 7758
2026-06-09T09:52:59.1185288Z             },
2026-06-09T09:52:59.1185379Z             {
2026-06-09T09:52:59.1185514Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.1185627Z               "line": 228
2026-06-09T09:52:59.1185719Z             },
2026-06-09T09:52:59.1185819Z             {
2026-06-09T09:52:59.1185932Z               "path": "crates/spt/src/elevation.rs",
2026-06-09T09:52:59.1186045Z               "line": 237
2026-06-09T09:52:59.1186136Z             }
2026-06-09T09:52:59.1186235Z           ]
2026-06-09T09:52:59.1186334Z         }
2026-06-09T09:52:59.1186420Z       }
2026-06-09T09:52:59.1186526Z     },
2026-06-09T09:52:59.1186620Z     {
2026-06-09T09:52:59.1186740Z       "id": "REQ-PAIR-7",
2026-06-09T09:52:59.1186944Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-09T09:52:59.1187055Z       "requiredStages": [],
2026-06-09T09:52:59.1187159Z       "stages": {
2026-06-09T09:52:59.1187249Z         "doc": {
2026-06-09T09:52:59.1187356Z           "complete": false,
2026-06-09T09:52:59.1187456Z           "evidence": []
2026-06-09T09:52:59.1187555Z         },
2026-06-09T09:52:59.1187645Z         "impl": {
2026-06-09T09:52:59.1187756Z           "complete": false,
2026-06-09T09:52:59.1187861Z           "evidence": []
2026-06-09T09:52:59.1187946Z         },
2026-06-09T09:52:59.1188047Z         "int": {
2026-06-09T09:52:59.1188146Z           "complete": false,
2026-06-09T09:52:59.1188343Z           "evidence": []
2026-06-09T09:52:59.1188428Z         },
2026-06-09T09:52:59.1188537Z         "unit": {
2026-06-09T09:52:59.1188644Z           "complete": false,
2026-06-09T09:52:59.1188738Z           "evidence": []
2026-06-09T09:52:59.1188841Z         }
2026-06-09T09:52:59.1188927Z       }
2026-06-09T09:52:59.1189266Z     },
2026-06-09T09:52:59.1189352Z     {
2026-06-09T09:52:59.1189466Z       "id": "REQ-PAIR-8",
2026-06-09T09:52:59.1190964Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-09T09:52:59.1191077Z       "requiredStages": [
2026-06-09T09:52:59.1191196Z         "impl",
2026-06-09T09:52:59.1191309Z         "unit"
2026-06-09T09:52:59.1191408Z       ],
2026-06-09T09:52:59.1191513Z       "stages": {
2026-06-09T09:52:59.1191600Z         "doc": {
2026-06-09T09:52:59.1191718Z           "complete": false,
2026-06-09T09:52:59.1191809Z           "evidence": []
2026-06-09T09:52:59.1191905Z         },
2026-06-09T09:52:59.1192018Z         "impl": {
2026-06-09T09:52:59.1192128Z           "complete": true,
2026-06-09T09:52:59.1192243Z           "evidence": [
2026-06-09T09:52:59.1192333Z             {
2026-06-09T09:52:59.1192482Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1192577Z               "line": 577
2026-06-09T09:52:59.1192676Z             },
2026-06-09T09:52:59.1192772Z             {
2026-06-09T09:52:59.1192915Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1193020Z               "line": 22
2026-06-09T09:52:59.1193106Z             },
2026-06-09T09:52:59.1193206Z             {
2026-06-09T09:52:59.1193339Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1193455Z               "line": 76
2026-06-09T09:52:59.1193540Z             },
2026-06-09T09:52:59.1193640Z             {
2026-06-09T09:52:59.1193784Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1193878Z               "line": 127
2026-06-09T09:52:59.1193986Z             }
2026-06-09T09:52:59.1194077Z           ]
2026-06-09T09:52:59.1194176Z         },
2026-06-09T09:52:59.1194271Z         "int": {
2026-06-09T09:52:59.1194390Z           "complete": false,
2026-06-09T09:52:59.1194496Z           "evidence": []
2026-06-09T09:52:59.1194585Z         },
2026-06-09T09:52:59.1194676Z         "unit": {
2026-06-09T09:52:59.1194762Z           "complete": true,
2026-06-09T09:52:59.1194858Z           "evidence": [
2026-06-09T09:52:59.1194928Z             {
2026-06-09T09:52:59.1195077Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1195210Z               "line": 183
2026-06-09T09:52:59.1195315Z             },
2026-06-09T09:52:59.1195411Z             {
2026-06-09T09:52:59.1195534Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1195634Z               "line": 195
2026-06-09T09:52:59.1195721Z             },
2026-06-09T09:52:59.1195820Z             {
2026-06-09T09:52:59.1195959Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1196055Z               "line": 211
2026-06-09T09:52:59.1196154Z             },
2026-06-09T09:52:59.1196244Z             {
2026-06-09T09:52:59.1196379Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-09T09:52:59.1196483Z               "line": 227
2026-06-09T09:52:59.1196572Z             }
2026-06-09T09:52:59.1196668Z           ]
2026-06-09T09:52:59.1196757Z         }
2026-06-09T09:52:59.1196856Z       }
2026-06-09T09:52:59.1196937Z     },
2026-06-09T09:52:59.1197039Z     {
2026-06-09T09:52:59.1197133Z       "id": "REQ-PRES-1",
2026-06-09T09:52:59.1198545Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-09T09:52:59.1198898Z       "requiredStages": [
2026-06-09T09:52:59.1199074Z         "impl",
2026-06-09T09:52:59.1199175Z         "unit",
2026-06-09T09:52:59.1199266Z         "int"
2026-06-09T09:52:59.1199354Z       ],
2026-06-09T09:52:59.1199454Z       "stages": {
2026-06-09T09:52:59.1199540Z         "doc": {
2026-06-09T09:52:59.1199646Z           "complete": true,
2026-06-09T09:52:59.1199730Z           "evidence": [
2026-06-09T09:52:59.1199831Z             {
2026-06-09T09:52:59.1199960Z               "path": "docs/DEFERRED.md",
2026-06-09T09:52:59.1200045Z               "line": 11
2026-06-09T09:52:59.1200156Z             }
2026-06-09T09:52:59.1200246Z           ]
2026-06-09T09:52:59.1200360Z         },
2026-06-09T09:52:59.1200451Z         "impl": {
2026-06-09T09:52:59.1200547Z           "complete": true,
2026-06-09T09:52:59.1200647Z           "evidence": [
2026-06-09T09:52:59.1200741Z             {
2026-06-09T09:52:59.1200946Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1201042Z               "line": 515
2026-06-09T09:52:59.1201133Z             },
2026-06-09T09:52:59.1201223Z             {
2026-06-09T09:52:59.1201371Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1201468Z               "line": 567
2026-06-09T09:52:59.1201557Z             },
2026-06-09T09:52:59.1201656Z             {
2026-06-09T09:52:59.1201785Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1201883Z               "line": 181
2026-06-09T09:52:59.1201973Z             },
2026-06-09T09:52:59.1202069Z             {
2026-06-09T09:52:59.1202198Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1202292Z               "line": 207
2026-06-09T09:52:59.1202393Z             },
2026-06-09T09:52:59.1202479Z             {
2026-06-09T09:52:59.1202612Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1202708Z               "line": 28
2026-06-09T09:52:59.1202808Z             },
2026-06-09T09:52:59.1202898Z             {
2026-06-09T09:52:59.1203018Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1203118Z               "line": 105
2026-06-09T09:52:59.1203204Z             },
2026-06-09T09:52:59.1203303Z             {
2026-06-09T09:52:59.1203419Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1203523Z               "line": 161
2026-06-09T09:52:59.1203623Z             },
2026-06-09T09:52:59.1203710Z             {
2026-06-09T09:52:59.1203837Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1203928Z               "line": 180
2026-06-09T09:52:59.1204035Z             },
2026-06-09T09:52:59.1204123Z             {
2026-06-09T09:52:59.1204267Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1204368Z               "line": 399
2026-06-09T09:52:59.1204457Z             },
2026-06-09T09:52:59.1204551Z             {
2026-06-09T09:52:59.1204681Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1204778Z               "line": 289
2026-06-09T09:52:59.1204869Z             },
2026-06-09T09:52:59.1204950Z             {
2026-06-09T09:52:59.1205079Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1205169Z               "line": 336
2026-06-09T09:52:59.1205265Z             },
2026-06-09T09:52:59.1205351Z             {
2026-06-09T09:52:59.1205488Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1205584Z               "line": 362
2026-06-09T09:52:59.1205666Z             },
2026-06-09T09:52:59.1205756Z             {
2026-06-09T09:52:59.1206009Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1206099Z               "line": 100
2026-06-09T09:52:59.1206180Z             }
2026-06-09T09:52:59.1206272Z           ]
2026-06-09T09:52:59.1206356Z         },
2026-06-09T09:52:59.1206428Z         "int": {
2026-06-09T09:52:59.1206634Z           "complete": true,
2026-06-09T09:52:59.1206757Z           "evidence": [
2026-06-09T09:52:59.1206844Z             {
2026-06-09T09:52:59.1206972Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1207071Z               "line": 557
2026-06-09T09:52:59.1207166Z             },
2026-06-09T09:52:59.1207252Z             {
2026-06-09T09:52:59.1207379Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1207468Z               "line": 677
2026-06-09T09:52:59.1207564Z             },
2026-06-09T09:52:59.1207646Z             {
2026-06-09T09:52:59.1207778Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1207884Z               "line": 1070
2026-06-09T09:52:59.1207965Z             }
2026-06-09T09:52:59.1208065Z           ]
2026-06-09T09:52:59.1208151Z         },
2026-06-09T09:52:59.1208261Z         "unit": {
2026-06-09T09:52:59.1208384Z           "complete": true,
2026-06-09T09:52:59.1208495Z           "evidence": [
2026-06-09T09:52:59.1208599Z             {
2026-06-09T09:52:59.1208722Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1208824Z               "line": 601
2026-06-09T09:52:59.1208914Z             },
2026-06-09T09:52:59.1209076Z             {
2026-06-09T09:52:59.1209191Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1209280Z               "line": 237
2026-06-09T09:52:59.1209376Z             },
2026-06-09T09:52:59.1209463Z             {
2026-06-09T09:52:59.1209624Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1209720Z               "line": 268
2026-06-09T09:52:59.1209811Z             },
2026-06-09T09:52:59.1209900Z             {
2026-06-09T09:52:59.1210019Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1210114Z               "line": 304
2026-06-09T09:52:59.1210201Z             },
2026-06-09T09:52:59.1210290Z             {
2026-06-09T09:52:59.1210406Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-09T09:52:59.1210510Z               "line": 335
2026-06-09T09:52:59.1210596Z             },
2026-06-09T09:52:59.1210691Z             {
2026-06-09T09:52:59.1210820Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1210911Z               "line": 1135
2026-06-09T09:52:59.1211001Z             },
2026-06-09T09:52:59.1211083Z             {
2026-06-09T09:52:59.1211202Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1211301Z               "line": 1112
2026-06-09T09:52:59.1211388Z             }
2026-06-09T09:52:59.1211474Z           ]
2026-06-09T09:52:59.1211555Z         }
2026-06-09T09:52:59.1211655Z       }
2026-06-09T09:52:59.1211746Z     },
2026-06-09T09:52:59.1211854Z     {
2026-06-09T09:52:59.1211951Z       "id": "REQ-REACH-1",
2026-06-09T09:52:59.1212112Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-09T09:52:59.1212216Z       "requiredStages": [
2026-06-09T09:52:59.1212307Z         "impl",
2026-06-09T09:52:59.1212407Z         "unit",
2026-06-09T09:52:59.1212495Z         "int"
2026-06-09T09:52:59.1212599Z       ],
2026-06-09T09:52:59.1212691Z       "stages": {
2026-06-09T09:52:59.1212796Z         "doc": {
2026-06-09T09:52:59.1212914Z           "complete": false,
2026-06-09T09:52:59.1213011Z           "evidence": []
2026-06-09T09:52:59.1213111Z         },
2026-06-09T09:52:59.1213200Z         "impl": {
2026-06-09T09:52:59.1213311Z           "complete": true,
2026-06-09T09:52:59.1213401Z           "evidence": [
2026-06-09T09:52:59.1213505Z             {
2026-06-09T09:52:59.1213631Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-09T09:52:59.1213825Z               "line": 140
2026-06-09T09:52:59.1213921Z             },
2026-06-09T09:52:59.1214002Z             {
2026-06-09T09:52:59.1214125Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.1214217Z               "line": 76
2026-06-09T09:52:59.1214304Z             },
2026-06-09T09:52:59.1214397Z             {
2026-06-09T09:52:59.1214604Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.1214697Z               "line": 222
2026-06-09T09:52:59.1214784Z             },
2026-06-09T09:52:59.1214871Z             {
2026-06-09T09:52:59.1214980Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.1215079Z               "line": 422
2026-06-09T09:52:59.1215169Z             },
2026-06-09T09:52:59.1215255Z             {
2026-06-09T09:52:59.1215367Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.1215461Z               "line": 529
2026-06-09T09:52:59.1215553Z             },
2026-06-09T09:52:59.1215640Z             {
2026-06-09T09:52:59.1215762Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T09:52:59.1215859Z               "line": 39
2026-06-09T09:52:59.1215944Z             },
2026-06-09T09:52:59.1216034Z             {
2026-06-09T09:52:59.1216140Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.1216230Z               "line": 229
2026-06-09T09:52:59.1216330Z             },
2026-06-09T09:52:59.1216425Z             {
2026-06-09T09:52:59.1216559Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T09:52:59.1216650Z               "line": 88
2026-06-09T09:52:59.1216740Z             },
2026-06-09T09:52:59.1216827Z             {
2026-06-09T09:52:59.1216950Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T09:52:59.1217050Z               "line": 98
2026-06-09T09:52:59.1217142Z             },
2026-06-09T09:52:59.1217245Z             {
2026-06-09T09:52:59.1217374Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1217486Z               "line": 210
2026-06-09T09:52:59.1217579Z             }
2026-06-09T09:52:59.1217687Z           ]
2026-06-09T09:52:59.1217784Z         },
2026-06-09T09:52:59.1217877Z         "int": {
2026-06-09T09:52:59.1217990Z           "complete": true,
2026-06-09T09:52:59.1218086Z           "evidence": [
2026-06-09T09:52:59.1218178Z             {
2026-06-09T09:52:59.1218310Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1218401Z               "line": 415
2026-06-09T09:52:59.1218497Z             },
2026-06-09T09:52:59.1218582Z             {
2026-06-09T09:52:59.1218706Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1218797Z               "line": 514
2026-06-09T09:52:59.1218888Z             },
2026-06-09T09:52:59.1219055Z             {
2026-06-09T09:52:59.1219183Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1219287Z               "line": 903
2026-06-09T09:52:59.1219370Z             },
2026-06-09T09:52:59.1219460Z             {
2026-06-09T09:52:59.1219584Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1219680Z               "line": 1198
2026-06-09T09:52:59.1219765Z             }
2026-06-09T09:52:59.1219850Z           ]
2026-06-09T09:52:59.1219941Z         },
2026-06-09T09:52:59.1220024Z         "unit": {
2026-06-09T09:52:59.1220122Z           "complete": true,
2026-06-09T09:52:59.1220213Z           "evidence": [
2026-06-09T09:52:59.1220295Z             {
2026-06-09T09:52:59.1220409Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.1220498Z               "line": 639
2026-06-09T09:52:59.1220579Z             },
2026-06-09T09:52:59.1220661Z             {
2026-06-09T09:52:59.1220771Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-09T09:52:59.1220860Z               "line": 660
2026-06-09T09:52:59.1220951Z             },
2026-06-09T09:52:59.1221038Z             {
2026-06-09T09:52:59.1221170Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-09T09:52:59.1221399Z               "line": 391
2026-06-09T09:52:59.1221490Z             },
2026-06-09T09:52:59.1221590Z             {
2026-06-09T09:52:59.1221714Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-09T09:52:59.1221819Z               "line": 93
2026-06-09T09:52:59.1221925Z             },
2026-06-09T09:52:59.1222119Z             {
2026-06-09T09:52:59.1222249Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-09T09:52:59.1222349Z               "line": 224
2026-06-09T09:52:59.1222448Z             },
2026-06-09T09:52:59.1222539Z             {
2026-06-09T09:52:59.1222672Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T09:52:59.1222767Z               "line": 96
2026-06-09T09:52:59.1222852Z             },
2026-06-09T09:52:59.1222943Z             {
2026-06-09T09:52:59.1223060Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-09T09:52:59.1223155Z               "line": 146
2026-06-09T09:52:59.1223236Z             },
2026-06-09T09:52:59.1223333Z             {
2026-06-09T09:52:59.1223451Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.1223537Z               "line": 502
2026-06-09T09:52:59.1223623Z             },
2026-06-09T09:52:59.1223708Z             {
2026-06-09T09:52:59.1223823Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T09:52:59.1223914Z               "line": 118
2026-06-09T09:52:59.1224004Z             },
2026-06-09T09:52:59.1224094Z             {
2026-06-09T09:52:59.1224210Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-09T09:52:59.1224305Z               "line": 148
2026-06-09T09:52:59.1224390Z             },
2026-06-09T09:52:59.1224482Z             {
2026-06-09T09:52:59.1224600Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1224695Z               "line": 602
2026-06-09T09:52:59.1224787Z             }
2026-06-09T09:52:59.1224873Z           ]
2026-06-09T09:52:59.1224957Z         }
2026-06-09T09:52:59.1225029Z       }
2026-06-09T09:52:59.1225126Z     },
2026-06-09T09:52:59.1225207Z     {
2026-06-09T09:52:59.1225291Z       "id": "REQ-REACH-2",
2026-06-09T09:52:59.1225455Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-09T09:52:59.1225568Z       "requiredStages": [],
2026-06-09T09:52:59.1225658Z       "stages": {
2026-06-09T09:52:59.1225744Z         "doc": {
2026-06-09T09:52:59.1225848Z           "complete": false,
2026-06-09T09:52:59.1225936Z           "evidence": []
2026-06-09T09:52:59.1226046Z         },
2026-06-09T09:52:59.1226166Z         "impl": {
2026-06-09T09:52:59.1226251Z           "complete": false,
2026-06-09T09:52:59.1226356Z           "evidence": []
2026-06-09T09:52:59.1226457Z         },
2026-06-09T09:52:59.1226575Z         "int": {
2026-06-09T09:52:59.1226675Z           "complete": false,
2026-06-09T09:52:59.1226786Z           "evidence": []
2026-06-09T09:52:59.1226904Z         },
2026-06-09T09:52:59.1227000Z         "unit": {
2026-06-09T09:52:59.1227106Z           "complete": false,
2026-06-09T09:52:59.1227201Z           "evidence": []
2026-06-09T09:52:59.1227305Z         }
2026-06-09T09:52:59.1227397Z       }
2026-06-09T09:52:59.1227491Z     },
2026-06-09T09:52:59.1227581Z     {
2026-06-09T09:52:59.1227673Z       "id": "REQ-REL-1",
2026-06-09T09:52:59.1228051Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-09T09:52:59.1228153Z       "requiredStages": [
2026-06-09T09:52:59.1228243Z         "doc",
2026-06-09T09:52:59.1228329Z         "impl"
2026-06-09T09:52:59.1228423Z       ],
2026-06-09T09:52:59.1228513Z       "stages": {
2026-06-09T09:52:59.1228598Z         "doc": {
2026-06-09T09:52:59.1228694Z           "complete": true,
2026-06-09T09:52:59.1228785Z           "evidence": [
2026-06-09T09:52:59.1228870Z             {
2026-06-09T09:52:59.1229171Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-09T09:52:59.1229266Z               "line": 3
2026-06-09T09:52:59.1229485Z             }
2026-06-09T09:52:59.1229567Z           ]
2026-06-09T09:52:59.1229667Z         },
2026-06-09T09:52:59.1229748Z         "impl": {
2026-06-09T09:52:59.1229838Z           "complete": true,
2026-06-09T09:52:59.1229925Z           "evidence": [
2026-06-09T09:52:59.1230015Z             {
2026-06-09T09:52:59.1230278Z               "path": ".github/workflows/docs-publish.yml",
2026-06-09T09:52:59.1230368Z               "line": 11
2026-06-09T09:52:59.1230468Z             },
2026-06-09T09:52:59.1230555Z             {
2026-06-09T09:52:59.1230687Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1230778Z               "line": 265
2026-06-09T09:52:59.1230879Z             }
2026-06-09T09:52:59.1230978Z           ]
2026-06-09T09:52:59.1231063Z         },
2026-06-09T09:52:59.1231158Z         "int": {
2026-06-09T09:52:59.1231254Z           "complete": false,
2026-06-09T09:52:59.1231354Z           "evidence": []
2026-06-09T09:52:59.1231439Z         },
2026-06-09T09:52:59.1231554Z         "unit": {
2026-06-09T09:52:59.1231702Z           "complete": false,
2026-06-09T09:52:59.1231797Z           "evidence": []
2026-06-09T09:52:59.1231888Z         }
2026-06-09T09:52:59.1231969Z       }
2026-06-09T09:52:59.1232055Z     },
2026-06-09T09:52:59.1232131Z     {
2026-06-09T09:52:59.1232231Z       "id": "REQ-REL-2",
2026-06-09T09:52:59.1232712Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-09T09:52:59.1232810Z       "requiredStages": [
2026-06-09T09:52:59.1232904Z         "impl",
2026-06-09T09:52:59.1232989Z         "int"
2026-06-09T09:52:59.1233075Z       ],
2026-06-09T09:52:59.1233162Z       "stages": {
2026-06-09T09:52:59.1233251Z         "doc": {
2026-06-09T09:52:59.1233351Z           "complete": true,
2026-06-09T09:52:59.1233441Z           "evidence": [
2026-06-09T09:52:59.1233531Z             {
2026-06-09T09:52:59.1233639Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-09T09:52:59.1233739Z               "line": 6
2026-06-09T09:52:59.1233831Z             }
2026-06-09T09:52:59.1233916Z           ]
2026-06-09T09:52:59.1234006Z         },
2026-06-09T09:52:59.1234088Z         "impl": {
2026-06-09T09:52:59.1234183Z           "complete": true,
2026-06-09T09:52:59.1234269Z           "evidence": [
2026-06-09T09:52:59.1234359Z             {
2026-06-09T09:52:59.1234470Z               "path": ".github/workflows/release.yml",
2026-06-09T09:52:59.1234574Z               "line": 16
2026-06-09T09:52:59.1234683Z             },
2026-06-09T09:52:59.1234765Z             {
2026-06-09T09:52:59.1234884Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1234974Z               "line": 352
2026-06-09T09:52:59.1235075Z             },
2026-06-09T09:52:59.1235165Z             {
2026-06-09T09:52:59.1235289Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1235390Z               "line": 426
2026-06-09T09:52:59.1235484Z             },
2026-06-09T09:52:59.1235589Z             {
2026-06-09T09:52:59.1235695Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1235804Z               "line": 588
2026-06-09T09:52:59.1235909Z             },
2026-06-09T09:52:59.1236001Z             {
2026-06-09T09:52:59.1236124Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1236223Z               "line": 720
2026-06-09T09:52:59.1236308Z             }
2026-06-09T09:52:59.1236389Z           ]
2026-06-09T09:52:59.1236469Z         },
2026-06-09T09:52:59.1236563Z         "int": {
2026-06-09T09:52:59.1236654Z           "complete": true,
2026-06-09T09:52:59.1236750Z           "evidence": [
2026-06-09T09:52:59.1236835Z             {
2026-06-09T09:52:59.1236974Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-09T09:52:59.1237059Z               "line": 13
2026-06-09T09:52:59.1237150Z             }
2026-06-09T09:52:59.1237245Z           ]
2026-06-09T09:52:59.1237327Z         },
2026-06-09T09:52:59.1237497Z         "unit": {
2026-06-09T09:52:59.1237589Z           "complete": false,
2026-06-09T09:52:59.1237685Z           "evidence": []
2026-06-09T09:52:59.1237766Z         }
2026-06-09T09:52:59.1237856Z       }
2026-06-09T09:52:59.1237947Z     },
2026-06-09T09:52:59.1238027Z     {
2026-06-09T09:52:59.1238122Z       "id": "REQ-REL-3",
2026-06-09T09:52:59.1238629Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-09T09:52:59.1238732Z       "requiredStages": [
2026-06-09T09:52:59.1238817Z         "impl",
2026-06-09T09:52:59.1238899Z         "unit"
2026-06-09T09:52:59.1239068Z       ],
2026-06-09T09:52:59.1239163Z       "stages": {
2026-06-09T09:52:59.1239274Z         "doc": {
2026-06-09T09:52:59.1239373Z           "complete": false,
2026-06-09T09:52:59.1239468Z           "evidence": []
2026-06-09T09:52:59.1239551Z         },
2026-06-09T09:52:59.1239641Z         "impl": {
2026-06-09T09:52:59.1239735Z           "complete": true,
2026-06-09T09:52:59.1239827Z           "evidence": [
2026-06-09T09:52:59.1239912Z             {
2026-06-09T09:52:59.1240036Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1240127Z               "line": 237
2026-06-09T09:52:59.1240209Z             },
2026-06-09T09:52:59.1240303Z             {
2026-06-09T09:52:59.1240422Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1240510Z               "line": 289
2026-06-09T09:52:59.1240599Z             },
2026-06-09T09:52:59.1240675Z             {
2026-06-09T09:52:59.1240786Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1240871Z               "line": 329
2026-06-09T09:52:59.1240961Z             },
2026-06-09T09:52:59.1241047Z             {
2026-06-09T09:52:59.1241149Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1241242Z               "line": 353
2026-06-09T09:52:59.1241324Z             },
2026-06-09T09:52:59.1241415Z             {
2026-06-09T09:52:59.1241515Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1241609Z               "line": 394
2026-06-09T09:52:59.1241694Z             }
2026-06-09T09:52:59.1241776Z           ]
2026-06-09T09:52:59.1241862Z         },
2026-06-09T09:52:59.1241943Z         "int": {
2026-06-09T09:52:59.1242047Z           "complete": false,
2026-06-09T09:52:59.1242139Z           "evidence": []
2026-06-09T09:52:59.1242224Z         },
2026-06-09T09:52:59.1242309Z         "unit": {
2026-06-09T09:52:59.1242396Z           "complete": true,
2026-06-09T09:52:59.1242496Z           "evidence": [
2026-06-09T09:52:59.1242581Z             {
2026-06-09T09:52:59.1242701Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1242787Z               "line": 992
2026-06-09T09:52:59.1242882Z             },
2026-06-09T09:52:59.1242967Z             {
2026-06-09T09:52:59.1243078Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1243182Z               "line": 1051
2026-06-09T09:52:59.1243263Z             }
2026-06-09T09:52:59.1243350Z           ]
2026-06-09T09:52:59.1243431Z         }
2026-06-09T09:52:59.1243521Z       }
2026-06-09T09:52:59.1243611Z     },
2026-06-09T09:52:59.1243689Z     {
2026-06-09T09:52:59.1243806Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-09T09:52:59.1243992Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-09T09:52:59.1244096Z       "requiredStages": [
2026-06-09T09:52:59.1244185Z         "impl",
2026-06-09T09:52:59.1246561Z         "unit"
2026-06-09T09:52:59.1246656Z       ],
2026-06-09T09:52:59.1246744Z       "stages": {
2026-06-09T09:52:59.1246830Z         "doc": {
2026-06-09T09:52:59.1246925Z           "complete": false,
2026-06-09T09:52:59.1247024Z           "evidence": []
2026-06-09T09:52:59.1247109Z         },
2026-06-09T09:52:59.1247205Z         "impl": {
2026-06-09T09:52:59.1247300Z           "complete": true,
2026-06-09T09:52:59.1247409Z           "evidence": [
2026-06-09T09:52:59.1247644Z             {
2026-06-09T09:52:59.1247772Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1247873Z               "line": 18
2026-06-09T09:52:59.1247953Z             },
2026-06-09T09:52:59.1248048Z             {
2026-06-09T09:52:59.1248173Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1248358Z               "line": 35
2026-06-09T09:52:59.1248439Z             },
2026-06-09T09:52:59.1248522Z             {
2026-06-09T09:52:59.1248634Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1248721Z               "line": 72
2026-06-09T09:52:59.1248808Z             }
2026-06-09T09:52:59.1248893Z           ]
2026-06-09T09:52:59.1249069Z         },
2026-06-09T09:52:59.1249171Z         "int": {
2026-06-09T09:52:59.1249264Z           "complete": false,
2026-06-09T09:52:59.1249377Z           "evidence": []
2026-06-09T09:52:59.1249459Z         },
2026-06-09T09:52:59.1249544Z         "unit": {
2026-06-09T09:52:59.1249638Z           "complete": true,
2026-06-09T09:52:59.1249728Z           "evidence": [
2026-06-09T09:52:59.1249810Z             {
2026-06-09T09:52:59.1249915Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1250005Z               "line": 214
2026-06-09T09:52:59.1250091Z             },
2026-06-09T09:52:59.1250182Z             {
2026-06-09T09:52:59.1250291Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1250372Z               "line": 231
2026-06-09T09:52:59.1250454Z             },
2026-06-09T09:52:59.1250535Z             {
2026-06-09T09:52:59.1250648Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1250731Z               "line": 240
2026-06-09T09:52:59.1250816Z             }
2026-06-09T09:52:59.1250901Z           ]
2026-06-09T09:52:59.1250968Z         }
2026-06-09T09:52:59.1251055Z       }
2026-06-09T09:52:59.1251135Z     },
2026-06-09T09:52:59.1251216Z     {
2026-06-09T09:52:59.1251316Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-09T09:52:59.1251483Z       "title": "Hostable endpoint-types capability declaration",
2026-06-09T09:52:59.1251583Z       "requiredStages": [
2026-06-09T09:52:59.1251661Z         "impl",
2026-06-09T09:52:59.1251747Z         "unit"
2026-06-09T09:52:59.1251826Z       ],
2026-06-09T09:52:59.1251917Z       "stages": {
2026-06-09T09:52:59.1251999Z         "doc": {
2026-06-09T09:52:59.1252099Z           "complete": false,
2026-06-09T09:52:59.1252188Z           "evidence": []
2026-06-09T09:52:59.1252273Z         },
2026-06-09T09:52:59.1252360Z         "impl": {
2026-06-09T09:52:59.1252446Z           "complete": true,
2026-06-09T09:52:59.1252536Z           "evidence": [
2026-06-09T09:52:59.1252622Z             {
2026-06-09T09:52:59.1252789Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1252884Z               "line": 404
2026-06-09T09:52:59.1252961Z             }
2026-06-09T09:52:59.1253046Z           ]
2026-06-09T09:52:59.1253141Z         },
2026-06-09T09:52:59.1253232Z         "int": {
2026-06-09T09:52:59.1253328Z           "complete": false,
2026-06-09T09:52:59.1253418Z           "evidence": []
2026-06-09T09:52:59.1253523Z         },
2026-06-09T09:52:59.1253610Z         "unit": {
2026-06-09T09:52:59.1253700Z           "complete": true,
2026-06-09T09:52:59.1253785Z           "evidence": [
2026-06-09T09:52:59.1253876Z             {
2026-06-09T09:52:59.1253986Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1254085Z               "line": 641
2026-06-09T09:52:59.1254171Z             }
2026-06-09T09:52:59.1254249Z           ]
2026-06-09T09:52:59.1254334Z         }
2026-06-09T09:52:59.1254414Z       }
2026-06-09T09:52:59.1254495Z     },
2026-06-09T09:52:59.1254576Z     {
2026-06-09T09:52:59.1254675Z       "id": "REQ-SEAM-HISTORY",
2026-06-09T09:52:59.1254859Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-09T09:52:59.1254951Z       "requiredStages": [
2026-06-09T09:52:59.1255036Z         "impl",
2026-06-09T09:52:59.1255232Z         "unit",
2026-06-09T09:52:59.1255318Z         "int"
2026-06-09T09:52:59.1255403Z       ],
2026-06-09T09:52:59.1255489Z       "stages": {
2026-06-09T09:52:59.1255571Z         "doc": {
2026-06-09T09:52:59.1255661Z           "complete": false,
2026-06-09T09:52:59.1255755Z           "evidence": []
2026-06-09T09:52:59.1255838Z         },
2026-06-09T09:52:59.1256996Z         "impl": {
2026-06-09T09:52:59.1257078Z           "complete": true,
2026-06-09T09:52:59.1257168Z           "evidence": [
2026-06-09T09:52:59.1257258Z             {
2026-06-09T09:52:59.1257366Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.1257457Z               "line": 24
2026-06-09T09:52:59.1257537Z             },
2026-06-09T09:52:59.1257622Z             {
2026-06-09T09:52:59.1257726Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1257823Z               "line": 22
2026-06-09T09:52:59.1257904Z             }
2026-06-09T09:52:59.1257983Z           ]
2026-06-09T09:52:59.1258070Z         },
2026-06-09T09:52:59.1258157Z         "int": {
2026-06-09T09:52:59.1258251Z           "complete": true,
2026-06-09T09:52:59.1258336Z           "evidence": [
2026-06-09T09:52:59.1258419Z             {
2026-06-09T09:52:59.1258538Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:59.1258627Z               "line": 256
2026-06-09T09:52:59.1258719Z             }
2026-06-09T09:52:59.1258796Z           ]
2026-06-09T09:52:59.1258881Z         },
2026-06-09T09:52:59.1259034Z         "unit": {
2026-06-09T09:52:59.1259115Z           "complete": true,
2026-06-09T09:52:59.1259209Z           "evidence": [
2026-06-09T09:52:59.1259300Z             {
2026-06-09T09:52:59.1259406Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.1259495Z               "line": 167
2026-06-09T09:52:59.1259576Z             },
2026-06-09T09:52:59.1259659Z             {
2026-06-09T09:52:59.1259769Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.1259862Z               "line": 196
2026-06-09T09:52:59.1259942Z             },
2026-06-09T09:52:59.1260028Z             {
2026-06-09T09:52:59.1260132Z               "path": "crates/spt-live/src/echo.rs",
2026-06-09T09:52:59.1260221Z               "line": 216
2026-06-09T09:52:59.1260303Z             },
2026-06-09T09:52:59.1260389Z             {
2026-06-09T09:52:59.1260508Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1260598Z               "line": 199
2026-06-09T09:52:59.1260685Z             },
2026-06-09T09:52:59.1260766Z             {
2026-06-09T09:52:59.1260879Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1260966Z               "line": 219
2026-06-09T09:52:59.1261052Z             },
2026-06-09T09:52:59.1261137Z             {
2026-06-09T09:52:59.1261247Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1261339Z               "line": 244
2026-06-09T09:52:59.1261418Z             },
2026-06-09T09:52:59.1261504Z             {
2026-06-09T09:52:59.1261615Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1261709Z               "line": 269
2026-06-09T09:52:59.1261795Z             },
2026-06-09T09:52:59.1261876Z             {
2026-06-09T09:52:59.1261992Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1262076Z               "line": 290
2026-06-09T09:52:59.1262172Z             },
2026-06-09T09:52:59.1262254Z             {
2026-06-09T09:52:59.1262362Z               "path": "crates/spt-live/src/history.rs",
2026-06-09T09:52:59.1262458Z               "line": 317
2026-06-09T09:52:59.1262536Z             }
2026-06-09T09:52:59.1262622Z           ]
2026-06-09T09:52:59.1262701Z         }
2026-06-09T09:52:59.1262786Z       }
2026-06-09T09:52:59.1262872Z     },
2026-06-09T09:52:59.1262954Z     {
2026-06-09T09:52:59.1263053Z       "id": "REQ-SEAM-INJECT",
2026-06-09T09:52:59.1263215Z       "title": "inject-input methods configurable per activity-state",
2026-06-09T09:52:59.1263316Z       "requiredStages": [
2026-06-09T09:52:59.1263545Z         "impl",
2026-06-09T09:52:59.1263630Z         "unit"
2026-06-09T09:52:59.1263715Z       ],
2026-06-09T09:52:59.1263802Z       "stages": {
2026-06-09T09:52:59.1263889Z         "doc": {
2026-06-09T09:52:59.1263983Z           "complete": false,
2026-06-09T09:52:59.1264078Z           "evidence": []
2026-06-09T09:52:59.1264246Z         },
2026-06-09T09:52:59.1264336Z         "impl": {
2026-06-09T09:52:59.1264421Z           "complete": true,
2026-06-09T09:52:59.1264514Z           "evidence": [
2026-06-09T09:52:59.1264607Z             {
2026-06-09T09:52:59.1264722Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1264814Z               "line": 19
2026-06-09T09:52:59.1264899Z             },
2026-06-09T09:52:59.1264984Z             {
2026-06-09T09:52:59.1265102Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1265183Z               "line": 111
2026-06-09T09:52:59.1265272Z             }
2026-06-09T09:52:59.1265348Z           ]
2026-06-09T09:52:59.1265453Z         },
2026-06-09T09:52:59.1265568Z         "int": {
2026-06-09T09:52:59.1265672Z           "complete": false,
2026-06-09T09:52:59.1265768Z           "evidence": []
2026-06-09T09:52:59.1265845Z         },
2026-06-09T09:52:59.1265939Z         "unit": {
2026-06-09T09:52:59.1266029Z           "complete": true,
2026-06-09T09:52:59.1266121Z           "evidence": [
2026-06-09T09:52:59.1266207Z             {
2026-06-09T09:52:59.1266320Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1266413Z               "line": 320
2026-06-09T09:52:59.1266498Z             },
2026-06-09T09:52:59.1266583Z             {
2026-06-09T09:52:59.1266688Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1266784Z               "line": 340
2026-06-09T09:52:59.1266865Z             }
2026-06-09T09:52:59.1266955Z           ]
2026-06-09T09:52:59.1267037Z         }
2026-06-09T09:52:59.1267122Z       }
2026-06-09T09:52:59.1267207Z     },
2026-06-09T09:52:59.1267288Z     {
2026-06-09T09:52:59.1267395Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-09T09:52:59.1267527Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-09T09:52:59.1267623Z       "requiredStages": [
2026-06-09T09:52:59.1267710Z         "impl",
2026-06-09T09:52:59.1267790Z         "unit"
2026-06-09T09:52:59.1267874Z       ],
2026-06-09T09:52:59.1267965Z       "stages": {
2026-06-09T09:52:59.1268050Z         "doc": {
2026-06-09T09:52:59.1268139Z           "complete": false,
2026-06-09T09:52:59.1268229Z           "evidence": []
2026-06-09T09:52:59.1268311Z         },
2026-06-09T09:52:59.1268397Z         "impl": {
2026-06-09T09:52:59.1268492Z           "complete": true,
2026-06-09T09:52:59.1268577Z           "evidence": [
2026-06-09T09:52:59.1268664Z             {
2026-06-09T09:52:59.1268779Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1268868Z               "line": 18
2026-06-09T09:52:59.1269017Z             },
2026-06-09T09:52:59.1269098Z             {
2026-06-09T09:52:59.1269216Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1269312Z               "line": 309
2026-06-09T09:52:59.1269398Z             }
2026-06-09T09:52:59.1269479Z           ]
2026-06-09T09:52:59.1269565Z         },
2026-06-09T09:52:59.1269642Z         "int": {
2026-06-09T09:52:59.1269736Z           "complete": false,
2026-06-09T09:52:59.1269831Z           "evidence": []
2026-06-09T09:52:59.1269914Z         },
2026-06-09T09:52:59.1270000Z         "unit": {
2026-06-09T09:52:59.1270088Z           "complete": true,
2026-06-09T09:52:59.1270180Z           "evidence": [
2026-06-09T09:52:59.1270257Z             {
2026-06-09T09:52:59.1270375Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1270465Z               "line": 559
2026-06-09T09:52:59.1270546Z             },
2026-06-09T09:52:59.1270632Z             {
2026-06-09T09:52:59.1270739Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1270829Z               "line": 569
2026-06-09T09:52:59.1271021Z             }
2026-06-09T09:52:59.1271101Z           ]
2026-06-09T09:52:59.1271192Z         }
2026-06-09T09:52:59.1271274Z       }
2026-06-09T09:52:59.1271360Z     },
2026-06-09T09:52:59.1271439Z     {
2026-06-09T09:52:59.1271536Z       "id": "REQ-SEAM-PSYCHE",
2026-06-09T09:52:59.1271674Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-09T09:52:59.1271865Z       "requiredStages": [
2026-06-09T09:52:59.1271950Z         "impl",
2026-06-09T09:52:59.1272036Z         "unit",
2026-06-09T09:52:59.1272112Z         "int"
2026-06-09T09:52:59.1272194Z       ],
2026-06-09T09:52:59.1272274Z       "stages": {
2026-06-09T09:52:59.1272351Z         "doc": {
2026-06-09T09:52:59.1272446Z           "complete": false,
2026-06-09T09:52:59.1272547Z           "evidence": []
2026-06-09T09:52:59.1272636Z         },
2026-06-09T09:52:59.1272723Z         "impl": {
2026-06-09T09:52:59.1272809Z           "complete": true,
2026-06-09T09:52:59.1272895Z           "evidence": [
2026-06-09T09:52:59.1272980Z             {
2026-06-09T09:52:59.1273096Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T09:52:59.1273182Z               "line": 19
2026-06-09T09:52:59.1273261Z             },
2026-06-09T09:52:59.1273346Z             {
2026-06-09T09:52:59.1273451Z               "path": "crates/spt/src/api/live.rs",
2026-06-09T09:52:59.1273548Z               "line": 12
2026-06-09T09:52:59.1273632Z             },
2026-06-09T09:52:59.1273713Z             {
2026-06-09T09:52:59.1273814Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1273900Z               "line": 209
2026-06-09T09:52:59.1273985Z             }
2026-06-09T09:52:59.1274062Z           ]
2026-06-09T09:52:59.1274143Z         },
2026-06-09T09:52:59.1274224Z         "int": {
2026-06-09T09:52:59.1274319Z           "complete": true,
2026-06-09T09:52:59.1274405Z           "evidence": [
2026-06-09T09:52:59.1274491Z             {
2026-06-09T09:52:59.1274609Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:59.1274701Z               "line": 255
2026-06-09T09:52:59.1274787Z             }
2026-06-09T09:52:59.1274867Z           ]
2026-06-09T09:52:59.1274948Z         },
2026-06-09T09:52:59.1275030Z         "unit": {
2026-06-09T09:52:59.1275121Z           "complete": true,
2026-06-09T09:52:59.1275210Z           "evidence": [
2026-06-09T09:52:59.1275297Z             {
2026-06-09T09:52:59.1275412Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T09:52:59.1275506Z               "line": 161
2026-06-09T09:52:59.1275586Z             },
2026-06-09T09:52:59.1275676Z             {
2026-06-09T09:52:59.1275785Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T09:52:59.1275875Z               "line": 168
2026-06-09T09:52:59.1275955Z             },
2026-06-09T09:52:59.1276037Z             {
2026-06-09T09:52:59.1276147Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-09T09:52:59.1276237Z               "line": 191
2026-06-09T09:52:59.1276318Z             },
2026-06-09T09:52:59.1276405Z             {
2026-06-09T09:52:59.1276518Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-09T09:52:59.1276604Z               "line": 106
2026-06-09T09:52:59.1276691Z             },
2026-06-09T09:52:59.1276776Z             {
2026-06-09T09:52:59.1276885Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-09T09:52:59.1276982Z               "line": 137
2026-06-09T09:52:59.1277062Z             },
2026-06-09T09:52:59.1277153Z             {
2026-06-09T09:52:59.1277258Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-09T09:52:59.1277353Z               "line": 161
2026-06-09T09:52:59.1277448Z             }
2026-06-09T09:52:59.1277524Z           ]
2026-06-09T09:52:59.1277612Z         }
2026-06-09T09:52:59.1277692Z       }
2026-06-09T09:52:59.1277777Z     },
2026-06-09T09:52:59.1277858Z     {
2026-06-09T09:52:59.1277955Z       "id": "REQ-SEAM-RESUME",
2026-06-09T09:52:59.1278135Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-09T09:52:59.1278308Z       "requiredStages": [
2026-06-09T09:52:59.1278397Z         "impl",
2026-06-09T09:52:59.1278481Z         "unit"
2026-06-09T09:52:59.1278568Z       ],
2026-06-09T09:52:59.1278648Z       "stages": {
2026-06-09T09:52:59.1278733Z         "doc": {
2026-06-09T09:52:59.1278832Z           "complete": false,
2026-06-09T09:52:59.1279076Z           "evidence": []
2026-06-09T09:52:59.1279161Z         },
2026-06-09T09:52:59.1279243Z         "impl": {
2026-06-09T09:52:59.1279348Z           "complete": true,
2026-06-09T09:52:59.1279452Z           "evidence": [
2026-06-09T09:52:59.1279530Z             {
2026-06-09T09:52:59.1279648Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T09:52:59.1279748Z               "line": 19
2026-06-09T09:52:59.1279829Z             }
2026-06-09T09:52:59.1279916Z           ]
2026-06-09T09:52:59.1280006Z         },
2026-06-09T09:52:59.1280091Z         "int": {
2026-06-09T09:52:59.1280202Z           "complete": false,
2026-06-09T09:52:59.1280292Z           "evidence": []
2026-06-09T09:52:59.1280382Z         },
2026-06-09T09:52:59.1280469Z         "unit": {
2026-06-09T09:52:59.1280560Z           "complete": true,
2026-06-09T09:52:59.1280653Z           "evidence": [
2026-06-09T09:52:59.1280730Z             {
2026-06-09T09:52:59.1280846Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T09:52:59.1280945Z               "line": 179
2026-06-09T09:52:59.1281030Z             },
2026-06-09T09:52:59.1281115Z             {
2026-06-09T09:52:59.1281224Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T09:52:59.1281309Z               "line": 201
2026-06-09T09:52:59.1281389Z             },
2026-06-09T09:52:59.1281480Z             {
2026-06-09T09:52:59.1281595Z               "path": "crates/spt-live/src/resume.rs",
2026-06-09T09:52:59.1281680Z               "line": 222
2026-06-09T09:52:59.1281762Z             }
2026-06-09T09:52:59.1281844Z           ]
2026-06-09T09:52:59.1281929Z         }
2026-06-09T09:52:59.1282009Z       }
2026-06-09T09:52:59.1282096Z     },
2026-06-09T09:52:59.1282182Z     {
2026-06-09T09:52:59.1282277Z       "id": "REQ-SEAM-SPAWN",
2026-06-09T09:52:59.1282377Z       "title": "spawn-session seam",
2026-06-09T09:52:59.1282468Z       "requiredStages": [
2026-06-09T09:52:59.1282553Z         "impl",
2026-06-09T09:52:59.1282634Z         "unit"
2026-06-09T09:52:59.1282726Z       ],
2026-06-09T09:52:59.1282811Z       "stages": {
2026-06-09T09:52:59.1282892Z         "doc": {
2026-06-09T09:52:59.1282987Z           "complete": false,
2026-06-09T09:52:59.1283074Z           "evidence": []
2026-06-09T09:52:59.1283159Z         },
2026-06-09T09:52:59.1283240Z         "impl": {
2026-06-09T09:52:59.1283336Z           "complete": true,
2026-06-09T09:52:59.1283432Z           "evidence": [
2026-06-09T09:52:59.1283511Z             {
2026-06-09T09:52:59.1283631Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1283723Z               "line": 20
2026-06-09T09:52:59.1283807Z             }
2026-06-09T09:52:59.1283887Z           ]
2026-06-09T09:52:59.1283978Z         },
2026-06-09T09:52:59.1284069Z         "int": {
2026-06-09T09:52:59.1284159Z           "complete": false,
2026-06-09T09:52:59.1284249Z           "evidence": []
2026-06-09T09:52:59.1284331Z         },
2026-06-09T09:52:59.1284451Z         "unit": {
2026-06-09T09:52:59.1284540Z           "complete": true,
2026-06-09T09:52:59.1284632Z           "evidence": [
2026-06-09T09:52:59.1284718Z             {
2026-06-09T09:52:59.1284836Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1284932Z               "line": 435
2026-06-09T09:52:59.1284999Z             },
2026-06-09T09:52:59.1285089Z             {
2026-06-09T09:52:59.1285203Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1285300Z               "line": 442
2026-06-09T09:52:59.1285385Z             },
2026-06-09T09:52:59.1285475Z             {
2026-06-09T09:52:59.1285614Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1285704Z               "line": 452
2026-06-09T09:52:59.1285900Z             },
2026-06-09T09:52:59.1285982Z             {
2026-06-09T09:52:59.1286099Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1286285Z               "line": 458
2026-06-09T09:52:59.1286378Z             },
2026-06-09T09:52:59.1286468Z             {
2026-06-09T09:52:59.1286702Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1286792Z               "line": 483
2026-06-09T09:52:59.1286878Z             },
2026-06-09T09:52:59.1286955Z             {
2026-06-09T09:52:59.1287078Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-09T09:52:59.1287179Z               "line": 520
2026-06-09T09:52:59.1287265Z             }
2026-06-09T09:52:59.1287360Z           ]
2026-06-09T09:52:59.1287450Z         }
2026-06-09T09:52:59.1287542Z       }
2026-06-09T09:52:59.1287632Z     },
2026-06-09T09:52:59.1287722Z     {
2026-06-09T09:52:59.1287828Z       "id": "REQ-SEAM-UPDATE",
2026-06-09T09:52:59.1288004Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-09T09:52:59.1288103Z       "requiredStages": [
2026-06-09T09:52:59.1288196Z         "impl",
2026-06-09T09:52:59.1288285Z         "unit"
2026-06-09T09:52:59.1288361Z       ],
2026-06-09T09:52:59.1288448Z       "stages": {
2026-06-09T09:52:59.1288539Z         "doc": {
2026-06-09T09:52:59.1288633Z           "complete": false,
2026-06-09T09:52:59.1288724Z           "evidence": []
2026-06-09T09:52:59.1288806Z         },
2026-06-09T09:52:59.1288891Z         "impl": {
2026-06-09T09:52:59.1289070Z           "complete": true,
2026-06-09T09:52:59.1289166Z           "evidence": [
2026-06-09T09:52:59.1289245Z             {
2026-06-09T09:52:59.1289382Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1289469Z               "line": 28
2026-06-09T09:52:59.1289555Z             },
2026-06-09T09:52:59.1289640Z             {
2026-06-09T09:52:59.1289770Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1289870Z               "line": 83
2026-06-09T09:52:59.1289955Z             }
2026-06-09T09:52:59.1290036Z           ]
2026-06-09T09:52:59.1290118Z         },
2026-06-09T09:52:59.1290199Z         "int": {
2026-06-09T09:52:59.1290298Z           "complete": false,
2026-06-09T09:52:59.1290385Z           "evidence": []
2026-06-09T09:52:59.1290480Z         },
2026-06-09T09:52:59.1290566Z         "unit": {
2026-06-09T09:52:59.1290656Z           "complete": true,
2026-06-09T09:52:59.1290753Z           "evidence": [
2026-06-09T09:52:59.1290842Z             {
2026-06-09T09:52:59.1290975Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1291068Z               "line": 286
2026-06-09T09:52:59.1291152Z             },
2026-06-09T09:52:59.1291233Z             {
2026-06-09T09:52:59.1291358Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1291449Z               "line": 297
2026-06-09T09:52:59.1291533Z             }
2026-06-09T09:52:59.1291618Z           ]
2026-06-09T09:52:59.1291709Z         }
2026-06-09T09:52:59.1291794Z       }
2026-06-09T09:52:59.1291897Z     },
2026-06-09T09:52:59.1291983Z     {
2026-06-09T09:52:59.1292075Z       "id": "REQ-SEC-1",
2026-06-09T09:52:59.1292466Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-09T09:52:59.1292564Z       "requiredStages": [
2026-06-09T09:52:59.1292656Z         "impl",
2026-06-09T09:52:59.1292742Z         "unit"
2026-06-09T09:52:59.1292823Z       ],
2026-06-09T09:52:59.1292913Z       "stages": {
2026-06-09T09:52:59.1292995Z         "doc": {
2026-06-09T09:52:59.1293089Z           "complete": false,
2026-06-09T09:52:59.1293175Z           "evidence": []
2026-06-09T09:52:59.1293261Z         },
2026-06-09T09:52:59.1293348Z         "impl": {
2026-06-09T09:52:59.1293438Z           "complete": true,
2026-06-09T09:52:59.1293528Z           "evidence": [
2026-06-09T09:52:59.1293724Z             {
2026-06-09T09:52:59.1293847Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.1293935Z               "line": 84
2026-06-09T09:52:59.1294029Z             },
2026-06-09T09:52:59.1294110Z             {
2026-06-09T09:52:59.1294225Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.1294410Z               "line": 114
2026-06-09T09:52:59.1294495Z             },
2026-06-09T09:52:59.1294581Z             {
2026-06-09T09:52:59.1294696Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.1294785Z               "line": 128
2026-06-09T09:52:59.1294877Z             },
2026-06-09T09:52:59.1294954Z             {
2026-06-09T09:52:59.1295067Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1295153Z               "line": 108
2026-06-09T09:52:59.1295240Z             },
2026-06-09T09:52:59.1295320Z             {
2026-06-09T09:52:59.1295434Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1295535Z               "line": 129
2026-06-09T09:52:59.1295616Z             },
2026-06-09T09:52:59.1295697Z             {
2026-06-09T09:52:59.1295806Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1295898Z               "line": 142
2026-06-09T09:52:59.1295978Z             },
2026-06-09T09:52:59.1296059Z             {
2026-06-09T09:52:59.1296174Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1296265Z               "line": 208
2026-06-09T09:52:59.1296350Z             },
2026-06-09T09:52:59.1296436Z             {
2026-06-09T09:52:59.1296547Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1296640Z               "line": 234
2026-06-09T09:52:59.1296721Z             },
2026-06-09T09:52:59.1296806Z             {
2026-06-09T09:52:59.1296906Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1297000Z               "line": 4007
2026-06-09T09:52:59.1297080Z             }
2026-06-09T09:52:59.1297167Z           ]
2026-06-09T09:52:59.1297263Z         },
2026-06-09T09:52:59.1297343Z         "int": {
2026-06-09T09:52:59.1297439Z           "complete": false,
2026-06-09T09:52:59.1297525Z           "evidence": []
2026-06-09T09:52:59.1297610Z         },
2026-06-09T09:52:59.1297696Z         "unit": {
2026-06-09T09:52:59.1297788Z           "complete": true,
2026-06-09T09:52:59.1297877Z           "evidence": [
2026-06-09T09:52:59.1297962Z             {
2026-06-09T09:52:59.1298078Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.1298164Z               "line": 140
2026-06-09T09:52:59.1298245Z             },
2026-06-09T09:52:59.1298325Z             {
2026-06-09T09:52:59.1298441Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.1298530Z               "line": 192
2026-06-09T09:52:59.1298611Z             },
2026-06-09T09:52:59.1298693Z             {
2026-06-09T09:52:59.1298803Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-09T09:52:59.1298893Z               "line": 233
2026-06-09T09:52:59.1299051Z             },
2026-06-09T09:52:59.1299150Z             {
2026-06-09T09:52:59.1299289Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-09T09:52:59.1299376Z               "line": 138
2026-06-09T09:52:59.1299465Z             },
2026-06-09T09:52:59.1299545Z             {
2026-06-09T09:52:59.1299669Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1299755Z               "line": 246
2026-06-09T09:52:59.1299843Z             },
2026-06-09T09:52:59.1299928Z             {
2026-06-09T09:52:59.1300039Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1300130Z               "line": 276
2026-06-09T09:52:59.1300210Z             },
2026-06-09T09:52:59.1300296Z             {
2026-06-09T09:52:59.1300406Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1300496Z               "line": 309
2026-06-09T09:52:59.1300581Z             },
2026-06-09T09:52:59.1300660Z             {
2026-06-09T09:52:59.1300878Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1300964Z               "line": 328
2026-06-09T09:52:59.1301050Z             },
2026-06-09T09:52:59.1301131Z             {
2026-06-09T09:52:59.1301250Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1301346Z               "line": 361
2026-06-09T09:52:59.1301517Z             },
2026-06-09T09:52:59.1301604Z             {
2026-06-09T09:52:59.1301712Z               "path": "crates/spt-store/src/access.rs",
2026-06-09T09:52:59.1301803Z               "line": 385
2026-06-09T09:52:59.1301885Z             },
2026-06-09T09:52:59.1301971Z             {
2026-06-09T09:52:59.1302079Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1302164Z               "line": 5573
2026-06-09T09:52:59.1302250Z             }
2026-06-09T09:52:59.1302335Z           ]
2026-06-09T09:52:59.1302420Z         }
2026-06-09T09:52:59.1302500Z       }
2026-06-09T09:52:59.1302592Z     },
2026-06-09T09:52:59.1302673Z     {
2026-06-09T09:52:59.1302767Z       "id": "REQ-SHELL-1",
2026-06-09T09:52:59.1303664Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-09T09:52:59.1303817Z       "requiredStages": [
2026-06-09T09:52:59.1303903Z         "impl",
2026-06-09T09:52:59.1303993Z         "unit",
2026-06-09T09:52:59.1304074Z         "int"
2026-06-09T09:52:59.1304161Z       ],
2026-06-09T09:52:59.1304251Z       "stages": {
2026-06-09T09:52:59.1304336Z         "doc": {
2026-06-09T09:52:59.1304427Z           "complete": false,
2026-06-09T09:52:59.1304518Z           "evidence": []
2026-06-09T09:52:59.1304612Z         },
2026-06-09T09:52:59.1304694Z         "impl": {
2026-06-09T09:52:59.1304786Z           "complete": true,
2026-06-09T09:52:59.1304876Z           "evidence": [
2026-06-09T09:52:59.1304960Z             {
2026-06-09T09:52:59.1305083Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1305180Z               "line": 94
2026-06-09T09:52:59.1305266Z             },
2026-06-09T09:52:59.1305350Z             {
2026-06-09T09:52:59.1305475Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1305561Z               "line": 119
2026-06-09T09:52:59.1305646Z             },
2026-06-09T09:52:59.1305723Z             {
2026-06-09T09:52:59.1305838Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1305933Z               "line": 27
2026-06-09T09:52:59.1306033Z             },
2026-06-09T09:52:59.1306119Z             {
2026-06-09T09:52:59.1306233Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1306323Z               "line": 52
2026-06-09T09:52:59.1306415Z             },
2026-06-09T09:52:59.1306524Z             {
2026-06-09T09:52:59.1306652Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1306754Z               "line": 132
2026-06-09T09:52:59.1306848Z             },
2026-06-09T09:52:59.1306929Z             {
2026-06-09T09:52:59.1307045Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1307140Z               "line": 164
2026-06-09T09:52:59.1307228Z             },
2026-06-09T09:52:59.1307314Z             {
2026-06-09T09:52:59.1307429Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1307522Z               "line": 22
2026-06-09T09:52:59.1307607Z             },
2026-06-09T09:52:59.1307693Z             {
2026-06-09T09:52:59.1307818Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1307903Z               "line": 65
2026-06-09T09:52:59.1307989Z             },
2026-06-09T09:52:59.1308071Z             {
2026-06-09T09:52:59.1308189Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1308279Z               "line": 76
2026-06-09T09:52:59.1308447Z             },
2026-06-09T09:52:59.1308537Z             {
2026-06-09T09:52:59.1308653Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1308742Z               "line": 150
2026-06-09T09:52:59.1308824Z             },
2026-06-09T09:52:59.1308914Z             {
2026-06-09T09:52:59.1309205Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1309335Z               "line": 209
2026-06-09T09:52:59.1309424Z             },
2026-06-09T09:52:59.1309505Z             {
2026-06-09T09:52:59.1309626Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1309715Z               "line": 246
2026-06-09T09:52:59.1309806Z             },
2026-06-09T09:52:59.1309888Z             {
2026-06-09T09:52:59.1310012Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1310100Z               "line": 267
2026-06-09T09:52:59.1312858Z             },
2026-06-09T09:52:59.1312965Z             {
2026-06-09T09:52:59.1313132Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1313224Z               "line": 280
2026-06-09T09:52:59.1313313Z             },
2026-06-09T09:52:59.1313399Z             {
2026-06-09T09:52:59.1313524Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.1313618Z               "line": 207
2026-06-09T09:52:59.1313704Z             },
2026-06-09T09:52:59.1313791Z             {
2026-06-09T09:52:59.1313909Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.1313995Z               "line": 223
2026-06-09T09:52:59.1314077Z             },
2026-06-09T09:52:59.1314153Z             {
2026-06-09T09:52:59.1314276Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.1314362Z               "line": 41
2026-06-09T09:52:59.1314440Z             },
2026-06-09T09:52:59.1314510Z             {
2026-06-09T09:52:59.1314634Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.1314731Z               "line": 204
2026-06-09T09:52:59.1314801Z             },
2026-06-09T09:52:59.1314886Z             {
2026-06-09T09:52:59.1315007Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-09T09:52:59.1315121Z               "line": 156
2026-06-09T09:52:59.1315206Z             },
2026-06-09T09:52:59.1315292Z             {
2026-06-09T09:52:59.1315417Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:59.1315506Z               "line": 295
2026-06-09T09:52:59.1315591Z             },
2026-06-09T09:52:59.1315677Z             {
2026-06-09T09:52:59.1315793Z               "path": "crates/spt/src/api/mod.rs",
2026-06-09T09:52:59.1315887Z               "line": 345
2026-06-09T09:52:59.1315973Z             },
2026-06-09T09:52:59.1316060Z             {
2026-06-09T09:52:59.1316183Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1316273Z               "line": 261
2026-06-09T09:52:59.1316350Z             },
2026-06-09T09:52:59.1316440Z             {
2026-06-09T09:52:59.1316549Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1316641Z               "line": 4505
2026-06-09T09:52:59.1316736Z             },
2026-06-09T09:52:59.1316817Z             {
2026-06-09T09:52:59.1316922Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1317009Z               "line": 4655
2026-06-09T09:52:59.1317103Z             },
2026-06-09T09:52:59.1317184Z             {
2026-06-09T09:52:59.1317286Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1317380Z               "line": 4692
2026-06-09T09:52:59.1317465Z             }
2026-06-09T09:52:59.1317556Z           ]
2026-06-09T09:52:59.1317638Z         },
2026-06-09T09:52:59.1317727Z         "int": {
2026-06-09T09:52:59.1317817Z           "complete": true,
2026-06-09T09:52:59.1317913Z           "evidence": [
2026-06-09T09:52:59.1317998Z             {
2026-06-09T09:52:59.1318125Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1318215Z               "line": 706
2026-06-09T09:52:59.1318434Z             },
2026-06-09T09:52:59.1318520Z             {
2026-06-09T09:52:59.1318650Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-09T09:52:59.1318735Z               "line": 8
2026-06-09T09:52:59.1318821Z             },
2026-06-09T09:52:59.1318903Z             {
2026-06-09T09:52:59.1319284Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-09T09:52:59.1319379Z               "line": 49
2026-06-09T09:52:59.1319483Z             },
2026-06-09T09:52:59.1319585Z             {
2026-06-09T09:52:59.1319713Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1319808Z               "line": 708
2026-06-09T09:52:59.1319890Z             },
2026-06-09T09:52:59.1319974Z             {
2026-06-09T09:52:59.1320099Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1320191Z               "line": 1118
2026-06-09T09:52:59.1320280Z             },
2026-06-09T09:52:59.1320357Z             {
2026-06-09T09:52:59.1320491Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-09T09:52:59.1320581Z               "line": 17
2026-06-09T09:52:59.1320670Z             },
2026-06-09T09:52:59.1320750Z             {
2026-06-09T09:52:59.1320866Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-09T09:52:59.1320963Z               "line": 14
2026-06-09T09:52:59.1321049Z             }
2026-06-09T09:52:59.1321135Z           ]
2026-06-09T09:52:59.1321212Z         },
2026-06-09T09:52:59.1321302Z         "unit": {
2026-06-09T09:52:59.1321397Z           "complete": true,
2026-06-09T09:52:59.1321489Z           "evidence": [
2026-06-09T09:52:59.1321575Z             {
2026-06-09T09:52:59.1321688Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1321784Z               "line": 234
2026-06-09T09:52:59.1321865Z             },
2026-06-09T09:52:59.1321955Z             {
2026-06-09T09:52:59.1322075Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1322175Z               "line": 267
2026-06-09T09:52:59.1322260Z             },
2026-06-09T09:52:59.1322346Z             {
2026-06-09T09:52:59.1322471Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1322565Z               "line": 307
2026-06-09T09:52:59.1322647Z             },
2026-06-09T09:52:59.1322729Z             {
2026-06-09T09:52:59.1322846Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1322937Z               "line": 519
2026-06-09T09:52:59.1323020Z             },
2026-06-09T09:52:59.1323105Z             {
2026-06-09T09:52:59.1323218Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1323312Z               "line": 592
2026-06-09T09:52:59.1323399Z             },
2026-06-09T09:52:59.1323483Z             {
2026-06-09T09:52:59.1323606Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1323692Z               "line": 736
2026-06-09T09:52:59.1323779Z             },
2026-06-09T09:52:59.1323869Z             {
2026-06-09T09:52:59.1323988Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.1324074Z               "line": 585
2026-06-09T09:52:59.1324164Z             },
2026-06-09T09:52:59.1324250Z             {
2026-06-09T09:52:59.1324365Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-09T09:52:59.1324470Z               "line": 352
2026-06-09T09:52:59.1324550Z             },
2026-06-09T09:52:59.1324637Z             {
2026-06-09T09:52:59.1324746Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1324841Z               "line": 5921
2026-06-09T09:52:59.1324932Z             },
2026-06-09T09:52:59.1325014Z             {
2026-06-09T09:52:59.1325118Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1325204Z               "line": 6243
2026-06-09T09:52:59.1325296Z             },
2026-06-09T09:52:59.1325380Z             {
2026-06-09T09:52:59.1325476Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1325676Z               "line": 6609
2026-06-09T09:52:59.1325756Z             }
2026-06-09T09:52:59.1325843Z           ]
2026-06-09T09:52:59.1325920Z         }
2026-06-09T09:52:59.1326005Z       }
2026-06-09T09:52:59.1326085Z     },
2026-06-09T09:52:59.1326170Z     {
2026-06-09T09:52:59.1326285Z       "id": "REQ-SHELL-2",
2026-06-09T09:52:59.1327916Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-09T09:52:59.1328025Z       "requiredStages": [
2026-06-09T09:52:59.1328116Z         "impl",
2026-06-09T09:52:59.1328198Z         "unit",
2026-06-09T09:52:59.1328283Z         "int"
2026-06-09T09:52:59.1328387Z       ],
2026-06-09T09:52:59.1328477Z       "stages": {
2026-06-09T09:52:59.1328558Z         "doc": {
2026-06-09T09:52:59.1328661Z           "complete": false,
2026-06-09T09:52:59.1328756Z           "evidence": []
2026-06-09T09:52:59.1328837Z         },
2026-06-09T09:52:59.1328925Z         "impl": {
2026-06-09T09:52:59.1329124Z           "complete": true,
2026-06-09T09:52:59.1329219Z           "evidence": [
2026-06-09T09:52:59.1329319Z             {
2026-06-09T09:52:59.1329444Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.1329539Z               "line": 213
2026-06-09T09:52:59.1329619Z             },
2026-06-09T09:52:59.1329710Z             {
2026-06-09T09:52:59.1329830Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1329916Z               "line": 403
2026-06-09T09:52:59.1329995Z             },
2026-06-09T09:52:59.1330088Z             {
2026-06-09T09:52:59.1330201Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-09T09:52:59.1330292Z               "line": 250
2026-06-09T09:52:59.1330378Z             },
2026-06-09T09:52:59.1330460Z             {
2026-06-09T09:52:59.1330607Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.1330693Z               "line": 310
2026-06-09T09:52:59.1330779Z             },
2026-06-09T09:52:59.1330873Z             {
2026-06-09T09:52:59.1330989Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1331080Z               "line": 30
2026-06-09T09:52:59.1331165Z             },
2026-06-09T09:52:59.1331249Z             {
2026-06-09T09:52:59.1331369Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1331463Z               "line": 150
2026-06-09T09:52:59.1331547Z             },
2026-06-09T09:52:59.1331628Z             {
2026-06-09T09:52:59.1331753Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1331839Z               "line": 186
2026-06-09T09:52:59.1331924Z             },
2026-06-09T09:52:59.1332010Z             {
2026-06-09T09:52:59.1332130Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1332209Z               "line": 345
2026-06-09T09:52:59.1332296Z             },
2026-06-09T09:52:59.1332378Z             {
2026-06-09T09:52:59.1332492Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.1332591Z               "line": 348
2026-06-09T09:52:59.1332707Z             },
2026-06-09T09:52:59.1332787Z             {
2026-06-09T09:52:59.1332911Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-09T09:52:59.1332988Z               "line": 115
2026-06-09T09:52:59.1333101Z             },
2026-06-09T09:52:59.1333182Z             {
2026-06-09T09:52:59.1333308Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1333416Z               "line": 120
2026-06-09T09:52:59.1333507Z             },
2026-06-09T09:52:59.1333589Z             {
2026-06-09T09:52:59.1333703Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1333902Z               "line": 360
2026-06-09T09:52:59.1333983Z             },
2026-06-09T09:52:59.1334071Z             {
2026-06-09T09:52:59.1334204Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1334291Z               "line": 464
2026-06-09T09:52:59.1334471Z             },
2026-06-09T09:52:59.1334557Z             {
2026-06-09T09:52:59.1334677Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1334767Z               "line": 24
2026-06-09T09:52:59.1334853Z             },
2026-06-09T09:52:59.1334940Z             {
2026-06-09T09:52:59.1335053Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1335148Z               "line": 76
2026-06-09T09:52:59.1335226Z             },
2026-06-09T09:52:59.1335315Z             {
2026-06-09T09:52:59.1335430Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1335526Z               "line": 154
2026-06-09T09:52:59.1335616Z             },
2026-06-09T09:52:59.1335697Z             {
2026-06-09T09:52:59.1335812Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1335903Z               "line": 177
2026-06-09T09:52:59.1335992Z             },
2026-06-09T09:52:59.1336074Z             {
2026-06-09T09:52:59.1336195Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1336288Z               "line": 273
2026-06-09T09:52:59.1336369Z             },
2026-06-09T09:52:59.1336457Z             {
2026-06-09T09:52:59.1336575Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1336664Z               "line": 450
2026-06-09T09:52:59.1336754Z             },
2026-06-09T09:52:59.1336836Z             {
2026-06-09T09:52:59.1336955Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1337040Z               "line": 532
2026-06-09T09:52:59.1337127Z             },
2026-06-09T09:52:59.1337208Z             {
2026-06-09T09:52:59.1337336Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-09T09:52:59.1337432Z               "line": 27
2026-06-09T09:52:59.1337513Z             },
2026-06-09T09:52:59.1337599Z             {
2026-06-09T09:52:59.1337718Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-09T09:52:59.1337818Z               "line": 43
2026-06-09T09:52:59.1337904Z             },
2026-06-09T09:52:59.1337999Z             {
2026-06-09T09:52:59.1338119Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1338209Z               "line": 323
2026-06-09T09:52:59.1338300Z             },
2026-06-09T09:52:59.1338381Z             {
2026-06-09T09:52:59.1338496Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1338585Z               "line": 1236
2026-06-09T09:52:59.1338667Z             },
2026-06-09T09:52:59.1338758Z             {
2026-06-09T09:52:59.1338867Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1339028Z               "line": 4519
2026-06-09T09:52:59.1339109Z             },
2026-06-09T09:52:59.1339198Z             {
2026-06-09T09:52:59.1339311Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1339407Z               "line": 4580
2026-06-09T09:52:59.1339494Z             },
2026-06-09T09:52:59.1339578Z             {
2026-06-09T09:52:59.1339679Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1339780Z               "line": 4608
2026-06-09T09:52:59.1339870Z             },
2026-06-09T09:52:59.1339950Z             {
2026-06-09T09:52:59.1340056Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1340147Z               "line": 4662
2026-06-09T09:52:59.1340231Z             },
2026-06-09T09:52:59.1340314Z             {
2026-06-09T09:52:59.1340414Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1340509Z               "line": 4778
2026-06-09T09:52:59.1340595Z             },
2026-06-09T09:52:59.1340681Z             {
2026-06-09T09:52:59.1340785Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1340972Z               "line": 4831
2026-06-09T09:52:59.1341062Z             },
2026-06-09T09:52:59.1341128Z             {
2026-06-09T09:52:59.1341239Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1341330Z               "line": 298
2026-06-09T09:52:59.1341414Z             },
2026-06-09T09:52:59.1341664Z             {
2026-06-09T09:52:59.1341771Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1341866Z               "line": 339
2026-06-09T09:52:59.1341952Z             }
2026-06-09T09:52:59.1342037Z           ]
2026-06-09T09:52:59.1342117Z         },
2026-06-09T09:52:59.1342207Z         "int": {
2026-06-09T09:52:59.1342304Z           "complete": true,
2026-06-09T09:52:59.1342389Z           "evidence": [
2026-06-09T09:52:59.1342474Z             {
2026-06-09T09:52:59.1342599Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1342695Z               "line": 699
2026-06-09T09:52:59.1342774Z             },
2026-06-09T09:52:59.1342871Z             {
2026-06-09T09:52:59.1342994Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1343080Z               "line": 708
2026-06-09T09:52:59.1343166Z             },
2026-06-09T09:52:59.1343253Z             {
2026-06-09T09:52:59.1343372Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1343467Z               "line": 1118
2026-06-09T09:52:59.1343558Z             },
2026-06-09T09:52:59.1343643Z             {
2026-06-09T09:52:59.1343772Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-09T09:52:59.1343863Z               "line": 18
2026-06-09T09:52:59.1343948Z             }
2026-06-09T09:52:59.1344034Z           ]
2026-06-09T09:52:59.1344120Z         },
2026-06-09T09:52:59.1344207Z         "unit": {
2026-06-09T09:52:59.1344300Z           "complete": true,
2026-06-09T09:52:59.1344391Z           "evidence": [
2026-06-09T09:52:59.1344476Z             {
2026-06-09T09:52:59.1344594Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-09T09:52:59.1344693Z               "line": 429
2026-06-09T09:52:59.1344779Z             },
2026-06-09T09:52:59.1344861Z             {
2026-06-09T09:52:59.1344984Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-09T09:52:59.1345074Z               "line": 794
2026-06-09T09:52:59.1345162Z             },
2026-06-09T09:52:59.1345247Z             {
2026-06-09T09:52:59.1345365Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1345457Z               "line": 625
2026-06-09T09:52:59.1345537Z             },
2026-06-09T09:52:59.1345627Z             {
2026-06-09T09:52:59.1345743Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1345838Z               "line": 674
2026-06-09T09:52:59.1345924Z             },
2026-06-09T09:52:59.1346014Z             {
2026-06-09T09:52:59.1346135Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-09T09:52:59.1346224Z               "line": 698
2026-06-09T09:52:59.1346319Z             },
2026-06-09T09:52:59.1346401Z             {
2026-06-09T09:52:59.1346529Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1346614Z               "line": 596
2026-06-09T09:52:59.1346707Z             },
2026-06-09T09:52:59.1346792Z             {
2026-06-09T09:52:59.1346910Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1347012Z               "line": 617
2026-06-09T09:52:59.1347107Z             },
2026-06-09T09:52:59.1347195Z             {
2026-06-09T09:52:59.1347309Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1347401Z               "line": 653
2026-06-09T09:52:59.1347492Z             },
2026-06-09T09:52:59.1347572Z             {
2026-06-09T09:52:59.1347696Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1347787Z               "line": 707
2026-06-09T09:52:59.1347872Z             },
2026-06-09T09:52:59.1347953Z             {
2026-06-09T09:52:59.1348073Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1348278Z               "line": 725
2026-06-09T09:52:59.1348360Z             },
2026-06-09T09:52:59.1348445Z             {
2026-06-09T09:52:59.1348559Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1348656Z               "line": 759
2026-06-09T09:52:59.1348812Z             },
2026-06-09T09:52:59.1348893Z             {
2026-06-09T09:52:59.1349112Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-09T09:52:59.1349198Z               "line": 834
2026-06-09T09:52:59.1349290Z             },
2026-06-09T09:52:59.1349370Z             {
2026-06-09T09:52:59.1349493Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-09T09:52:59.1349588Z               "line": 80
2026-06-09T09:52:59.1349659Z             },
2026-06-09T09:52:59.1349748Z             {
2026-06-09T09:52:59.1349852Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1349939Z               "line": 5392
2026-06-09T09:52:59.1350021Z             },
2026-06-09T09:52:59.1350111Z             {
2026-06-09T09:52:59.1350215Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1350302Z               "line": 5998
2026-06-09T09:52:59.1350396Z             },
2026-06-09T09:52:59.1350481Z             {
2026-06-09T09:52:59.1350588Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1350683Z               "line": 6068
2026-06-09T09:52:59.1350778Z             },
2026-06-09T09:52:59.1350879Z             {
2026-06-09T09:52:59.1350988Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1351092Z               "line": 6106
2026-06-09T09:52:59.1351183Z             }
2026-06-09T09:52:59.1351279Z           ]
2026-06-09T09:52:59.1351374Z         }
2026-06-09T09:52:59.1351484Z       }
2026-06-09T09:52:59.1351585Z     },
2026-06-09T09:52:59.1351683Z     {
2026-06-09T09:52:59.1351784Z       "id": "REQ-START-1",
2026-06-09T09:52:59.1351979Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-09T09:52:59.1352104Z       "requiredStages": [
2026-06-09T09:52:59.1352195Z         "impl",
2026-06-09T09:52:59.1352303Z         "unit"
2026-06-09T09:52:59.1352407Z       ],
2026-06-09T09:52:59.1352499Z       "stages": {
2026-06-09T09:52:59.1352602Z         "doc": {
2026-06-09T09:52:59.1352700Z           "complete": false,
2026-06-09T09:52:59.1352816Z           "evidence": []
2026-06-09T09:52:59.1352906Z         },
2026-06-09T09:52:59.1353010Z         "impl": {
2026-06-09T09:52:59.1353121Z           "complete": true,
2026-06-09T09:52:59.1353216Z           "evidence": [
2026-06-09T09:52:59.1353316Z             {
2026-06-09T09:52:59.1353436Z               "path": "crates/spt-store/src/seed.rs",
2026-06-09T09:52:59.1353550Z               "line": 16
2026-06-09T09:52:59.1353640Z             }
2026-06-09T09:52:59.1353745Z           ]
2026-06-09T09:52:59.1353855Z         },
2026-06-09T09:52:59.1353946Z         "int": {
2026-06-09T09:52:59.1354055Z           "complete": false,
2026-06-09T09:52:59.1354156Z           "evidence": []
2026-06-09T09:52:59.1354260Z         },
2026-06-09T09:52:59.1354346Z         "unit": {
2026-06-09T09:52:59.1354452Z           "complete": true,
2026-06-09T09:52:59.1354560Z           "evidence": [
2026-06-09T09:52:59.1354651Z             {
2026-06-09T09:52:59.1354781Z               "path": "crates/spt-store/src/seed.rs",
2026-06-09T09:52:59.1354889Z               "line": 43
2026-06-09T09:52:59.1354997Z             },
2026-06-09T09:52:59.1355089Z             {
2026-06-09T09:52:59.1355224Z               "path": "crates/spt-store/src/seed.rs",
2026-06-09T09:52:59.1355334Z               "line": 59
2026-06-09T09:52:59.1355421Z             }
2026-06-09T09:52:59.1355530Z           ]
2026-06-09T09:52:59.1355620Z         }
2026-06-09T09:52:59.1355722Z       }
2026-06-09T09:52:59.1355812Z     },
2026-06-09T09:52:59.1355911Z     {
2026-06-09T09:52:59.1356022Z       "id": "REQ-START-2",
2026-06-09T09:52:59.1356169Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-09T09:52:59.1356408Z       "requiredStages": [
2026-06-09T09:52:59.1356507Z         "impl",
2026-06-09T09:52:59.1356607Z         "unit",
2026-06-09T09:52:59.1356699Z         "int"
2026-06-09T09:52:59.1356799Z       ],
2026-06-09T09:52:59.1356903Z       "stages": {
2026-06-09T09:52:59.1356995Z         "doc": {
2026-06-09T09:52:59.1357208Z           "complete": false,
2026-06-09T09:52:59.1357300Z           "evidence": []
2026-06-09T09:52:59.1357404Z         },
2026-06-09T09:52:59.1357499Z         "impl": {
2026-06-09T09:52:59.1357615Z           "complete": true,
2026-06-09T09:52:59.1357719Z           "evidence": [
2026-06-09T09:52:59.1357813Z             {
2026-06-09T09:52:59.1357947Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1358043Z               "line": 16
2026-06-09T09:52:59.1358146Z             },
2026-06-09T09:52:59.1358233Z             {
2026-06-09T09:52:59.1358372Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1358480Z               "line": 100
2026-06-09T09:52:59.1358572Z             },
2026-06-09T09:52:59.1358676Z             {
2026-06-09T09:52:59.1358795Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1358896Z               "line": 208
2026-06-09T09:52:59.1359071Z             }
2026-06-09T09:52:59.1359177Z           ]
2026-06-09T09:52:59.1359282Z         },
2026-06-09T09:52:59.1359367Z         "int": {
2026-06-09T09:52:59.1359462Z           "complete": true,
2026-06-09T09:52:59.1359550Z           "evidence": [
2026-06-09T09:52:59.1359653Z             {
2026-06-09T09:52:59.1359801Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:59.1359912Z               "line": 182
2026-06-09T09:52:59.1360029Z             }
2026-06-09T09:52:59.1360124Z           ]
2026-06-09T09:52:59.1360224Z         },
2026-06-09T09:52:59.1360318Z         "unit": {
2026-06-09T09:52:59.1360431Z           "complete": true,
2026-06-09T09:52:59.1360528Z           "evidence": [
2026-06-09T09:52:59.1360637Z             {
2026-06-09T09:52:59.1360766Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1360867Z               "line": 421
2026-06-09T09:52:59.1360971Z             },
2026-06-09T09:52:59.1361061Z             {
2026-06-09T09:52:59.1361200Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1361299Z               "line": 454
2026-06-09T09:52:59.1361410Z             }
2026-06-09T09:52:59.1361505Z           ]
2026-06-09T09:52:59.1361600Z         }
2026-06-09T09:52:59.1361715Z       }
2026-06-09T09:52:59.1361801Z     },
2026-06-09T09:52:59.1361896Z     {
2026-06-09T09:52:59.1361982Z       "id": "REQ-START-3",
2026-06-09T09:52:59.1362159Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-09T09:52:59.1362268Z       "requiredStages": [
2026-06-09T09:52:59.1362373Z         "impl",
2026-06-09T09:52:59.1362497Z         "unit",
2026-06-09T09:52:59.1362587Z         "int"
2026-06-09T09:52:59.1362684Z       ],
2026-06-09T09:52:59.1362784Z       "stages": {
2026-06-09T09:52:59.1362887Z         "doc": {
2026-06-09T09:52:59.1362996Z           "complete": false,
2026-06-09T09:52:59.1363091Z           "evidence": []
2026-06-09T09:52:59.1363194Z         },
2026-06-09T09:52:59.1363284Z         "impl": {
2026-06-09T09:52:59.1363404Z           "complete": true,
2026-06-09T09:52:59.1363505Z           "evidence": [
2026-06-09T09:52:59.1363604Z             {
2026-06-09T09:52:59.1363739Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.1363829Z               "line": 23
2026-06-09T09:52:59.1363923Z             },
2026-06-09T09:52:59.1364015Z             {
2026-06-09T09:52:59.1364144Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.1364238Z               "line": 205
2026-06-09T09:52:59.1364340Z             },
2026-06-09T09:52:59.1364439Z             {
2026-06-09T09:52:59.1364562Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.1364668Z               "line": 221
2026-06-09T09:52:59.1364872Z             },
2026-06-09T09:52:59.1364970Z             {
2026-06-09T09:52:59.1365087Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1365197Z               "line": 17
2026-06-09T09:52:59.1365298Z             },
2026-06-09T09:52:59.1365388Z             {
2026-06-09T09:52:59.1365534Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1365799Z               "line": 43
2026-06-09T09:52:59.1365899Z             },
2026-06-09T09:52:59.1365986Z             {
2026-06-09T09:52:59.1366118Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1366223Z               "line": 101
2026-06-09T09:52:59.1366310Z             }
2026-06-09T09:52:59.1366415Z           ]
2026-06-09T09:52:59.1366505Z         },
2026-06-09T09:52:59.1366601Z         "int": {
2026-06-09T09:52:59.1366701Z           "complete": true,
2026-06-09T09:52:59.1366814Z           "evidence": [
2026-06-09T09:52:59.1366916Z             {
2026-06-09T09:52:59.1367044Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-09T09:52:59.1367216Z               "line": 436
2026-06-09T09:52:59.1367311Z             }
2026-06-09T09:52:59.1367401Z           ]
2026-06-09T09:52:59.1367487Z         },
2026-06-09T09:52:59.1367579Z         "unit": {
2026-06-09T09:52:59.1367682Z           "complete": true,
2026-06-09T09:52:59.1367783Z           "evidence": [
2026-06-09T09:52:59.1367879Z             {
2026-06-09T09:52:59.1368001Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.1368108Z               "line": 331
2026-06-09T09:52:59.1368194Z             },
2026-06-09T09:52:59.1368311Z             {
2026-06-09T09:52:59.1368444Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.1368526Z               "line": 352
2026-06-09T09:52:59.1368626Z             },
2026-06-09T09:52:59.1368706Z             {
2026-06-09T09:52:59.1368841Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-09T09:52:59.1369069Z               "line": 362
2026-06-09T09:52:59.1369170Z             },
2026-06-09T09:52:59.1369275Z             {
2026-06-09T09:52:59.1369393Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1369504Z               "line": 422
2026-06-09T09:52:59.1369594Z             },
2026-06-09T09:52:59.1369699Z             {
2026-06-09T09:52:59.1369824Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1369937Z               "line": 455
2026-06-09T09:52:59.1370042Z             },
2026-06-09T09:52:59.1370134Z             {
2026-06-09T09:52:59.1370261Z               "path": "crates/spt/src/api/startup.rs",
2026-06-09T09:52:59.1370356Z               "line": 463
2026-06-09T09:52:59.1370454Z             }
2026-06-09T09:52:59.1370547Z           ]
2026-06-09T09:52:59.1370660Z         }
2026-06-09T09:52:59.1370771Z       }
2026-06-09T09:52:59.1370854Z     },
2026-06-09T09:52:59.1370958Z     {
2026-06-09T09:52:59.1371054Z       "id": "REQ-START-4",
2026-06-09T09:52:59.1371211Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-09T09:52:59.1371316Z       "requiredStages": [
2026-06-09T09:52:59.1371417Z         "impl",
2026-06-09T09:52:59.1371521Z         "unit"
2026-06-09T09:52:59.1371611Z       ],
2026-06-09T09:52:59.1371713Z       "stages": {
2026-06-09T09:52:59.1371803Z         "doc": {
2026-06-09T09:52:59.1371922Z           "complete": false,
2026-06-09T09:52:59.1372018Z           "evidence": []
2026-06-09T09:52:59.1372113Z         },
2026-06-09T09:52:59.1372217Z         "impl": {
2026-06-09T09:52:59.1372313Z           "complete": true,
2026-06-09T09:52:59.1372418Z           "evidence": [
2026-06-09T09:52:59.1372508Z             {
2026-06-09T09:52:59.1372643Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1372742Z               "line": 391
2026-06-09T09:52:59.1372847Z             }
2026-06-09T09:52:59.1372948Z           ]
2026-06-09T09:52:59.1373034Z         },
2026-06-09T09:52:59.1373133Z         "int": {
2026-06-09T09:52:59.1373234Z           "complete": false,
2026-06-09T09:52:59.1373457Z           "evidence": []
2026-06-09T09:52:59.1373542Z         },
2026-06-09T09:52:59.1373628Z         "unit": {
2026-06-09T09:52:59.1373722Z           "complete": true,
2026-06-09T09:52:59.1373812Z           "evidence": [
2026-06-09T09:52:59.1373902Z             {
2026-06-09T09:52:59.1374018Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-09T09:52:59.1374246Z               "line": 660
2026-06-09T09:52:59.1374346Z             }
2026-06-09T09:52:59.1374436Z           ]
2026-06-09T09:52:59.1374527Z         }
2026-06-09T09:52:59.1374608Z       }
2026-06-09T09:52:59.1374709Z     },
2026-06-09T09:52:59.1374793Z     {
2026-06-09T09:52:59.1374895Z       "id": "REQ-STORE-1",
2026-06-09T09:52:59.1375791Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-09T09:52:59.1375906Z       "requiredStages": [
2026-06-09T09:52:59.1376005Z         "impl",
2026-06-09T09:52:59.1376094Z         "unit"
2026-06-09T09:52:59.1376270Z       ],
2026-06-09T09:52:59.1376373Z       "stages": {
2026-06-09T09:52:59.1376474Z         "doc": {
2026-06-09T09:52:59.1376574Z           "complete": false,
2026-06-09T09:52:59.1376665Z           "evidence": []
2026-06-09T09:52:59.1376755Z         },
2026-06-09T09:52:59.1376837Z         "impl": {
2026-06-09T09:52:59.1376927Z           "complete": true,
2026-06-09T09:52:59.1377021Z           "evidence": [
2026-06-09T09:52:59.1377108Z             {
2026-06-09T09:52:59.1377299Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1377394Z               "line": 23
2026-06-09T09:52:59.1377485Z             },
2026-06-09T09:52:59.1377570Z             {
2026-06-09T09:52:59.1377704Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1377805Z               "line": 46
2026-06-09T09:52:59.1377890Z             },
2026-06-09T09:52:59.1377980Z             {
2026-06-09T09:52:59.1378101Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1378195Z               "line": 97
2026-06-09T09:52:59.1378281Z             },
2026-06-09T09:52:59.1378377Z             {
2026-06-09T09:52:59.1378505Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1378596Z               "line": 125
2026-06-09T09:52:59.1378687Z             },
2026-06-09T09:52:59.1378768Z             {
2026-06-09T09:52:59.1378899Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1379071Z               "line": 181
2026-06-09T09:52:59.1379149Z             },
2026-06-09T09:52:59.1379247Z             {
2026-06-09T09:52:59.1379377Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1379497Z               "line": 205
2026-06-09T09:52:59.1379586Z             },
2026-06-09T09:52:59.1379687Z             {
2026-06-09T09:52:59.1379806Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1379905Z               "line": 441
2026-06-09T09:52:59.1380002Z             },
2026-06-09T09:52:59.1380092Z             {
2026-06-09T09:52:59.1380234Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1380336Z               "line": 25
2026-06-09T09:52:59.1380440Z             },
2026-06-09T09:52:59.1380535Z             {
2026-06-09T09:52:59.1380675Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1380787Z               "line": 104
2026-06-09T09:52:59.1380878Z             },
2026-06-09T09:52:59.1380975Z             {
2026-06-09T09:52:59.1381097Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1381197Z               "line": 132
2026-06-09T09:52:59.1381278Z             },
2026-06-09T09:52:59.1381368Z             {
2026-06-09T09:52:59.1381495Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1381711Z               "line": 148
2026-06-09T09:52:59.1381800Z             },
2026-06-09T09:52:59.1381886Z             {
2026-06-09T09:52:59.1384921Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1385048Z               "line": 166
2026-06-09T09:52:59.1385301Z             },
2026-06-09T09:52:59.1385407Z             {
2026-06-09T09:52:59.1385554Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1385669Z               "line": 175
2026-06-09T09:52:59.1385760Z             },
2026-06-09T09:52:59.1385874Z             {
2026-06-09T09:52:59.1386021Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T09:52:59.1386123Z               "line": 16
2026-06-09T09:52:59.1386217Z             },
2026-06-09T09:52:59.1386298Z             {
2026-06-09T09:52:59.1386414Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T09:52:59.1386504Z               "line": 63
2026-06-09T09:52:59.1386635Z             }
2026-06-09T09:52:59.1386716Z           ]
2026-06-09T09:52:59.1386797Z         },
2026-06-09T09:52:59.1386891Z         "int": {
2026-06-09T09:52:59.1386981Z           "complete": false,
2026-06-09T09:52:59.1387077Z           "evidence": []
2026-06-09T09:52:59.1387164Z         },
2026-06-09T09:52:59.1387257Z         "unit": {
2026-06-09T09:52:59.1387358Z           "complete": true,
2026-06-09T09:52:59.1387445Z           "evidence": [
2026-06-09T09:52:59.1387586Z             {
2026-06-09T09:52:59.1387711Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1387806Z               "line": 558
2026-06-09T09:52:59.1387887Z             },
2026-06-09T09:52:59.1387978Z             {
2026-06-09T09:52:59.1388107Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1388193Z               "line": 568
2026-06-09T09:52:59.1388269Z             },
2026-06-09T09:52:59.1388355Z             {
2026-06-09T09:52:59.1388479Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1388564Z               "line": 590
2026-06-09T09:52:59.1388647Z             },
2026-06-09T09:52:59.1388736Z             {
2026-06-09T09:52:59.1388869Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1389061Z               "line": 606
2026-06-09T09:52:59.1389156Z             },
2026-06-09T09:52:59.1389252Z             {
2026-06-09T09:52:59.1389376Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-09T09:52:59.1389479Z               "line": 629
2026-06-09T09:52:59.1389579Z             },
2026-06-09T09:52:59.1389666Z             {
2026-06-09T09:52:59.1389807Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1389898Z               "line": 440
2026-06-09T09:52:59.1389995Z             },
2026-06-09T09:52:59.1390085Z             {
2026-06-09T09:52:59.1390213Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-09T09:52:59.1390314Z               "line": 475
2026-06-09T09:52:59.1390405Z             },
2026-06-09T09:52:59.1390509Z             {
2026-06-09T09:52:59.1390615Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T09:52:59.1390704Z               "line": 120
2026-06-09T09:52:59.1390780Z             },
2026-06-09T09:52:59.1390872Z             {
2026-06-09T09:52:59.1390995Z               "path": "crates/spt-store/src/project.rs",
2026-06-09T09:52:59.1391081Z               "line": 128
2026-06-09T09:52:59.1391167Z             }
2026-06-09T09:52:59.1391254Z           ]
2026-06-09T09:52:59.1391338Z         }
2026-06-09T09:52:59.1391419Z       }
2026-06-09T09:52:59.1391506Z     },
2026-06-09T09:52:59.1391597Z     {
2026-06-09T09:52:59.1391691Z       "id": "REQ-SUBNET-1",
2026-06-09T09:52:59.1392017Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-09T09:52:59.1392116Z       "requiredStages": [
2026-06-09T09:52:59.1392203Z         "impl",
2026-06-09T09:52:59.1392408Z         "unit"
2026-06-09T09:52:59.1392484Z       ],
2026-06-09T09:52:59.1392575Z       "stages": {
2026-06-09T09:52:59.1392660Z         "doc": {
2026-06-09T09:52:59.1392760Z           "complete": false,
2026-06-09T09:52:59.1392848Z           "evidence": []
2026-06-09T09:52:59.1392938Z         },
2026-06-09T09:52:59.1393110Z         "impl": {
2026-06-09T09:52:59.1393195Z           "complete": true,
2026-06-09T09:52:59.1393300Z           "evidence": [
2026-06-09T09:52:59.1393390Z             {
2026-06-09T09:52:59.1393552Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1393643Z               "line": 265
2026-06-09T09:52:59.1393734Z             },
2026-06-09T09:52:59.1393835Z             {
2026-06-09T09:52:59.1393962Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1394068Z               "line": 571
2026-06-09T09:52:59.1394154Z             },
2026-06-09T09:52:59.1394253Z             {
2026-06-09T09:52:59.1394364Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1394478Z               "line": 2415
2026-06-09T09:52:59.1394577Z             },
2026-06-09T09:52:59.1394662Z             {
2026-06-09T09:52:59.1394782Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1394874Z               "line": 2580
2026-06-09T09:52:59.1394974Z             },
2026-06-09T09:52:59.1395056Z             {
2026-06-09T09:52:59.1395162Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1395251Z               "line": 2599
2026-06-09T09:52:59.1395327Z             },
2026-06-09T09:52:59.1395457Z             {
2026-06-09T09:52:59.1395556Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1395647Z               "line": 2660
2026-06-09T09:52:59.1395729Z             },
2026-06-09T09:52:59.1395819Z             {
2026-06-09T09:52:59.1395923Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1396010Z               "line": 2702
2026-06-09T09:52:59.1396100Z             },
2026-06-09T09:52:59.1396186Z             {
2026-06-09T09:52:59.1396296Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1396387Z               "line": 2875
2026-06-09T09:52:59.1396472Z             },
2026-06-09T09:52:59.1396558Z             {
2026-06-09T09:52:59.1396664Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1396763Z               "line": 2945
2026-06-09T09:52:59.1396844Z             },
2026-06-09T09:52:59.1396931Z             {
2026-06-09T09:52:59.1397030Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1397134Z               "line": 3169
2026-06-09T09:52:59.1397253Z             },
2026-06-09T09:52:59.1397334Z             {
2026-06-09T09:52:59.1397456Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1397541Z               "line": 418
2026-06-09T09:52:59.1397633Z             }
2026-06-09T09:52:59.1397709Z           ]
2026-06-09T09:52:59.1397808Z         },
2026-06-09T09:52:59.1397918Z         "int": {
2026-06-09T09:52:59.1398019Z           "complete": false,
2026-06-09T09:52:59.1398118Z           "evidence": []
2026-06-09T09:52:59.1398199Z         },
2026-06-09T09:52:59.1398295Z         "unit": {
2026-06-09T09:52:59.1398386Z           "complete": true,
2026-06-09T09:52:59.1398489Z           "evidence": [
2026-06-09T09:52:59.1398591Z             {
2026-06-09T09:52:59.1398729Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1398843Z               "line": 1446
2026-06-09T09:52:59.1398930Z             },
2026-06-09T09:52:59.1399110Z             {
2026-06-09T09:52:59.1399221Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1399325Z               "line": 6855
2026-06-09T09:52:59.1399430Z             },
2026-06-09T09:52:59.1399517Z             {
2026-06-09T09:52:59.1399621Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1399706Z               "line": 7025
2026-06-09T09:52:59.1399788Z             },
2026-06-09T09:52:59.1399870Z             {
2026-06-09T09:52:59.1400081Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1400173Z               "line": 7032
2026-06-09T09:52:59.1400259Z             },
2026-06-09T09:52:59.1400344Z             {
2026-06-09T09:52:59.1400449Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1400541Z               "line": 7085
2026-06-09T09:52:59.1400711Z             },
2026-06-09T09:52:59.1400808Z             {
2026-06-09T09:52:59.1400912Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1401002Z               "line": 7102
2026-06-09T09:52:59.1401088Z             },
2026-06-09T09:52:59.1401170Z             {
2026-06-09T09:52:59.1401274Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1401359Z               "line": 7116
2026-06-09T09:52:59.1401447Z             },
2026-06-09T09:52:59.1401532Z             {
2026-06-09T09:52:59.1401632Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1401722Z               "line": 7214
2026-06-09T09:52:59.1401795Z             },
2026-06-09T09:52:59.1401880Z             {
2026-06-09T09:52:59.1401979Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1402066Z               "line": 7364
2026-06-09T09:52:59.1402143Z             }
2026-06-09T09:52:59.1402232Z           ]
2026-06-09T09:52:59.1402336Z         }
2026-06-09T09:52:59.1402422Z       }
2026-06-09T09:52:59.1402521Z     },
2026-06-09T09:52:59.1402606Z     {
2026-06-09T09:52:59.1402711Z       "id": "REQ-SUBNET-2",
2026-06-09T09:52:59.1402977Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-09T09:52:59.1403078Z       "requiredStages": [
2026-06-09T09:52:59.1403183Z         "impl",
2026-06-09T09:52:59.1403273Z         "unit",
2026-06-09T09:52:59.1403374Z         "int"
2026-06-09T09:52:59.1403478Z       ],
2026-06-09T09:52:59.1403573Z       "stages": {
2026-06-09T09:52:59.1403670Z         "doc": {
2026-06-09T09:52:59.1403770Z           "complete": true,
2026-06-09T09:52:59.1403874Z           "evidence": [
2026-06-09T09:52:59.1403969Z             {
2026-06-09T09:52:59.1404131Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-09T09:52:59.1404227Z               "line": 60
2026-06-09T09:52:59.1404314Z             }
2026-06-09T09:52:59.1404400Z           ]
2026-06-09T09:52:59.1404479Z         },
2026-06-09T09:52:59.1404575Z         "impl": {
2026-06-09T09:52:59.1404667Z           "complete": true,
2026-06-09T09:52:59.1404775Z           "evidence": [
2026-06-09T09:52:59.1404861Z             {
2026-06-09T09:52:59.1404982Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.1405076Z               "line": 548
2026-06-09T09:52:59.1405156Z             },
2026-06-09T09:52:59.1405246Z             {
2026-06-09T09:52:59.1405361Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-09T09:52:59.1405454Z               "line": 655
2026-06-09T09:52:59.1405544Z             },
2026-06-09T09:52:59.1405630Z             {
2026-06-09T09:52:59.1405754Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.1405849Z               "line": 448
2026-06-09T09:52:59.1405936Z             },
2026-06-09T09:52:59.1406021Z             {
2026-06-09T09:52:59.1406145Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-09T09:52:59.1406241Z               "line": 578
2026-06-09T09:52:59.1406326Z             },
2026-06-09T09:52:59.1406421Z             {
2026-06-09T09:52:59.1406541Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1406637Z               "line": 26
2026-06-09T09:52:59.1406727Z             },
2026-06-09T09:52:59.1406813Z             {
2026-06-09T09:52:59.1406933Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1407018Z               "line": 60
2026-06-09T09:52:59.1407103Z             },
2026-06-09T09:52:59.1407186Z             {
2026-06-09T09:52:59.1407299Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1407389Z               "line": 168
2026-06-09T09:52:59.1407553Z             },
2026-06-09T09:52:59.1407642Z             {
2026-06-09T09:52:59.1407755Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1407841Z               "line": 295
2026-06-09T09:52:59.1407922Z             },
2026-06-09T09:52:59.1408006Z             {
2026-06-09T09:52:59.1408120Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1408312Z               "line": 417
2026-06-09T09:52:59.1408397Z             },
2026-06-09T09:52:59.1408478Z             {
2026-06-09T09:52:59.1408608Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-09T09:52:59.1408697Z               "line": 252
2026-06-09T09:52:59.1408779Z             },
2026-06-09T09:52:59.1408860Z             {
2026-06-09T09:52:59.1409059Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1409156Z               "line": 2626
2026-06-09T09:52:59.1409241Z             },
2026-06-09T09:52:59.1409331Z             {
2026-06-09T09:52:59.1409432Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1409532Z               "line": 3108
2026-06-09T09:52:59.1409623Z             },
2026-06-09T09:52:59.1409703Z             {
2026-06-09T09:52:59.1409814Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1409899Z               "line": 3731
2026-06-09T09:52:59.1409990Z             }
2026-06-09T09:52:59.1410072Z           ]
2026-06-09T09:52:59.1410162Z         },
2026-06-09T09:52:59.1410247Z         "int": {
2026-06-09T09:52:59.1410348Z           "complete": true,
2026-06-09T09:52:59.1410439Z           "evidence": [
2026-06-09T09:52:59.1410528Z             {
2026-06-09T09:52:59.1410651Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-09T09:52:59.1410743Z               "line": 22
2026-06-09T09:52:59.1410824Z             },
2026-06-09T09:52:59.1410909Z             {
2026-06-09T09:52:59.1411028Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1411120Z               "line": 575
2026-06-09T09:52:59.1411205Z             },
2026-06-09T09:52:59.1411295Z             {
2026-06-09T09:52:59.1411406Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1411496Z               "line": 792
2026-06-09T09:52:59.1411581Z             }
2026-06-09T09:52:59.1411662Z           ]
2026-06-09T09:52:59.1411749Z         },
2026-06-09T09:52:59.1411834Z         "unit": {
2026-06-09T09:52:59.1411924Z           "complete": true,
2026-06-09T09:52:59.1412002Z           "evidence": [
2026-06-09T09:52:59.1412092Z             {
2026-06-09T09:52:59.1412206Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1412283Z               "line": 586
2026-06-09T09:52:59.1412355Z             },
2026-06-09T09:52:59.1412440Z             {
2026-06-09T09:52:59.1412549Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1412641Z               "line": 6895
2026-06-09T09:52:59.1412741Z             },
2026-06-09T09:52:59.1412825Z             {
2026-06-09T09:52:59.1412924Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1413020Z               "line": 7561
2026-06-09T09:52:59.1413105Z             }
2026-06-09T09:52:59.1413190Z           ]
2026-06-09T09:52:59.1413281Z         }
2026-06-09T09:52:59.1413396Z       }
2026-06-09T09:52:59.1413475Z     },
2026-06-09T09:52:59.1413557Z     {
2026-06-09T09:52:59.1413658Z       "id": "REQ-SUBNET-3",
2026-06-09T09:52:59.1413925Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-09T09:52:59.1414024Z       "requiredStages": [
2026-06-09T09:52:59.1414105Z         "impl",
2026-06-09T09:52:59.1414191Z         "unit"
2026-06-09T09:52:59.1414278Z       ],
2026-06-09T09:52:59.1414358Z       "stages": {
2026-06-09T09:52:59.1414448Z         "doc": {
2026-06-09T09:52:59.1414534Z           "complete": false,
2026-06-09T09:52:59.1414631Z           "evidence": []
2026-06-09T09:52:59.1414711Z         },
2026-06-09T09:52:59.1414796Z         "impl": {
2026-06-09T09:52:59.1414997Z           "complete": true,
2026-06-09T09:52:59.1415083Z           "evidence": [
2026-06-09T09:52:59.1415169Z             {
2026-06-09T09:52:59.1415298Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1415393Z               "line": 152
2026-06-09T09:52:59.1415479Z             },
2026-06-09T09:52:59.1415655Z             {
2026-06-09T09:52:59.1415782Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1415868Z               "line": 283
2026-06-09T09:52:59.1415953Z             },
2026-06-09T09:52:59.1416033Z             {
2026-06-09T09:52:59.1416162Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1416248Z               "line": 413
2026-06-09T09:52:59.1416333Z             },
2026-06-09T09:52:59.1416419Z             {
2026-06-09T09:52:59.1416539Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1416630Z               "line": 452
2026-06-09T09:52:59.1416705Z             },
2026-06-09T09:52:59.1416801Z             {
2026-06-09T09:52:59.1416915Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1417005Z               "line": 125
2026-06-09T09:52:59.1417092Z             },
2026-06-09T09:52:59.1417174Z             {
2026-06-09T09:52:59.1417320Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1417416Z               "line": 237
2026-06-09T09:52:59.1417503Z             },
2026-06-09T09:52:59.1417578Z             {
2026-06-09T09:52:59.1417702Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1417794Z               "line": 248
2026-06-09T09:52:59.1417883Z             },
2026-06-09T09:52:59.1417969Z             {
2026-06-09T09:52:59.1418079Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1418179Z               "line": 269
2026-06-09T09:52:59.1418264Z             },
2026-06-09T09:52:59.1418344Z             {
2026-06-09T09:52:59.1418464Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1418552Z               "line": 573
2026-06-09T09:52:59.1418642Z             },
2026-06-09T09:52:59.1418714Z             {
2026-06-09T09:52:59.1418834Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1418924Z               "line": 632
2026-06-09T09:52:59.1419073Z             },
2026-06-09T09:52:59.1419158Z             {
2026-06-09T09:52:59.1419295Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.1419383Z               "line": 61
2026-06-09T09:52:59.1419468Z             },
2026-06-09T09:52:59.1419553Z             {
2026-06-09T09:52:59.1419673Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.1419758Z               "line": 90
2026-06-09T09:52:59.1419849Z             },
2026-06-09T09:52:59.1419930Z             {
2026-06-09T09:52:59.1420041Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.1420125Z               "line": 125
2026-06-09T09:52:59.1420216Z             },
2026-06-09T09:52:59.1420298Z             {
2026-06-09T09:52:59.1420412Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-09T09:52:59.1420497Z               "line": 9
2026-06-09T09:52:59.1420593Z             },
2026-06-09T09:52:59.1420685Z             {
2026-06-09T09:52:59.1420783Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1420879Z               "line": 2945
2026-06-09T09:52:59.1420966Z             },
2026-06-09T09:52:59.1421046Z             {
2026-06-09T09:52:59.1421155Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1421245Z               "line": 445
2026-06-09T09:52:59.1421331Z             }
2026-06-09T09:52:59.1421413Z           ]
2026-06-09T09:52:59.1421502Z         },
2026-06-09T09:52:59.1421588Z         "int": {
2026-06-09T09:52:59.1421680Z           "complete": false,
2026-06-09T09:52:59.1421774Z           "evidence": []
2026-06-09T09:52:59.1421855Z         },
2026-06-09T09:52:59.1421947Z         "unit": {
2026-06-09T09:52:59.1422137Z           "complete": true,
2026-06-09T09:52:59.1422227Z           "evidence": [
2026-06-09T09:52:59.1422309Z             {
2026-06-09T09:52:59.1422432Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1422528Z               "line": 1273
2026-06-09T09:52:59.1422605Z             },
2026-06-09T09:52:59.1422781Z             {
2026-06-09T09:52:59.1422906Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1422995Z               "line": 1575
2026-06-09T09:52:59.1423076Z             },
2026-06-09T09:52:59.1423143Z             {
2026-06-09T09:52:59.1423268Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1423352Z               "line": 885
2026-06-09T09:52:59.1423442Z             },
2026-06-09T09:52:59.1423523Z             {
2026-06-09T09:52:59.1423646Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1423730Z               "line": 941
2026-06-09T09:52:59.1423816Z             },
2026-06-09T09:52:59.1423898Z             {
2026-06-09T09:52:59.1424012Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1424102Z               "line": 990
2026-06-09T09:52:59.1424189Z             },
2026-06-09T09:52:59.1424265Z             {
2026-06-09T09:52:59.1424388Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1424475Z               "line": 1049
2026-06-09T09:52:59.1424561Z             },
2026-06-09T09:52:59.1424642Z             {
2026-06-09T09:52:59.1424765Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-09T09:52:59.1424857Z               "line": 233
2026-06-09T09:52:59.1424932Z             },
2026-06-09T09:52:59.1425022Z             {
2026-06-09T09:52:59.1425134Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-09T09:52:59.1425223Z               "line": 49
2026-06-09T09:52:59.1425309Z             },
2026-06-09T09:52:59.1425395Z             {
2026-06-09T09:52:59.1425496Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1425590Z               "line": 7214
2026-06-09T09:52:59.1425676Z             },
2026-06-09T09:52:59.1425754Z             {
2026-06-09T09:52:59.1425863Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1425948Z               "line": 7319
2026-06-09T09:52:59.1426039Z             },
2026-06-09T09:52:59.1426130Z             {
2026-06-09T09:52:59.1426224Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1426319Z               "line": 7527
2026-06-09T09:52:59.1426433Z             }
2026-06-09T09:52:59.1426527Z           ]
2026-06-09T09:52:59.1426602Z         }
2026-06-09T09:52:59.1426693Z       }
2026-06-09T09:52:59.1426799Z     },
2026-06-09T09:52:59.1426884Z     {
2026-06-09T09:52:59.1426979Z       "id": "REQ-SUBNET-4",
2026-06-09T09:52:59.1427260Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-09T09:52:59.1427352Z       "requiredStages": [
2026-06-09T09:52:59.1427438Z         "impl",
2026-06-09T09:52:59.1427524Z         "unit"
2026-06-09T09:52:59.1427603Z       ],
2026-06-09T09:52:59.1427686Z       "stages": {
2026-06-09T09:52:59.1427771Z         "doc": {
2026-06-09T09:52:59.1427857Z           "complete": true,
2026-06-09T09:52:59.1427947Z           "evidence": [
2026-06-09T09:52:59.1428034Z             {
2026-06-09T09:52:59.1428191Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-09T09:52:59.1428286Z               "line": 60
2026-06-09T09:52:59.1428363Z             }
2026-06-09T09:52:59.1428457Z           ]
2026-06-09T09:52:59.1428534Z         },
2026-06-09T09:52:59.1428621Z         "impl": {
2026-06-09T09:52:59.1428707Z           "complete": true,
2026-06-09T09:52:59.1428795Z           "evidence": [
2026-06-09T09:52:59.1428881Z             {
2026-06-09T09:52:59.1429084Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1429179Z               "line": 2415
2026-06-09T09:52:59.1429260Z             },
2026-06-09T09:52:59.1429498Z             {
2026-06-09T09:52:59.1429594Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1429690Z               "line": 3698
2026-06-09T09:52:59.1429775Z             },
2026-06-09T09:52:59.1429851Z             {
2026-06-09T09:52:59.1429952Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1430132Z               "line": 3731
2026-06-09T09:52:59.1430219Z             }
2026-06-09T09:52:59.1430296Z           ]
2026-06-09T09:52:59.1430380Z         },
2026-06-09T09:52:59.1430466Z         "int": {
2026-06-09T09:52:59.1430553Z           "complete": false,
2026-06-09T09:52:59.1430648Z           "evidence": []
2026-06-09T09:52:59.1430729Z         },
2026-06-09T09:52:59.1430810Z         "unit": {
2026-06-09T09:52:59.1430897Z           "complete": true,
2026-06-09T09:52:59.1430986Z           "evidence": [
2026-06-09T09:52:59.1431067Z             {
2026-06-09T09:52:59.1431168Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1431259Z               "line": 7011
2026-06-09T09:52:59.1431338Z             },
2026-06-09T09:52:59.1431425Z             {
2026-06-09T09:52:59.1431521Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1431616Z               "line": 7085
2026-06-09T09:52:59.1431700Z             }
2026-06-09T09:52:59.1431781Z           ]
2026-06-09T09:52:59.1431872Z         }
2026-06-09T09:52:59.1431954Z       }
2026-06-09T09:52:59.1432039Z     },
2026-06-09T09:52:59.1432120Z     {
2026-06-09T09:52:59.1432225Z       "id": "REQ-SUBNET-5",
2026-06-09T09:52:59.1433508Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-09T09:52:59.1433607Z       "requiredStages": [
2026-06-09T09:52:59.1433717Z         "impl",
2026-06-09T09:52:59.1433795Z         "unit",
2026-06-09T09:52:59.1433884Z         "int"
2026-06-09T09:52:59.1433969Z       ],
2026-06-09T09:52:59.1434054Z       "stages": {
2026-06-09T09:52:59.1434145Z         "doc": {
2026-06-09T09:52:59.1434239Z           "complete": false,
2026-06-09T09:52:59.1434328Z           "evidence": []
2026-06-09T09:52:59.1434434Z         },
2026-06-09T09:52:59.1434530Z         "impl": {
2026-06-09T09:52:59.1434624Z           "complete": true,
2026-06-09T09:52:59.1434710Z           "evidence": [
2026-06-09T09:52:59.1434797Z             {
2026-06-09T09:52:59.1434925Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-09T09:52:59.1435015Z               "line": 126
2026-06-09T09:52:59.1435097Z             },
2026-06-09T09:52:59.1435188Z             {
2026-06-09T09:52:59.1435311Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-09T09:52:59.1435398Z               "line": 413
2026-06-09T09:52:59.1435483Z             },
2026-06-09T09:52:59.1435564Z             {
2026-06-09T09:52:59.1435689Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1435774Z               "line": 74
2026-06-09T09:52:59.1435860Z             },
2026-06-09T09:52:59.1435945Z             {
2026-06-09T09:52:59.1436066Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.1436159Z               "line": 357
2026-06-09T09:52:59.1436245Z             },
2026-06-09T09:52:59.1436333Z             {
2026-06-09T09:52:59.1436446Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T09:52:59.1436542Z               "line": 31
2026-06-09T09:52:59.1436628Z             },
2026-06-09T09:52:59.1436714Z             {
2026-06-09T09:52:59.1436836Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T09:52:59.1436921Z               "line": 50
2026-06-09T09:52:59.1437003Z             },
2026-06-09T09:52:59.1437083Z             {
2026-06-09T09:52:59.1437205Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T09:52:59.1437454Z               "line": 69
2026-06-09T09:52:59.1437534Z             },
2026-06-09T09:52:59.1437621Z             {
2026-06-09T09:52:59.1437741Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T09:52:59.1437830Z               "line": 113
2026-06-09T09:52:59.1437917Z             },
2026-06-09T09:52:59.1438088Z             {
2026-06-09T09:52:59.1438216Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-09T09:52:59.1438298Z               "line": 25
2026-06-09T09:52:59.1438388Z             },
2026-06-09T09:52:59.1438469Z             {
2026-06-09T09:52:59.1438589Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-09T09:52:59.1438684Z               "line": 34
2026-06-09T09:52:59.1438765Z             },
2026-06-09T09:52:59.1438851Z             {
2026-06-09T09:52:59.1439045Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T09:52:59.1439137Z               "line": 17
2026-06-09T09:52:59.1439224Z             },
2026-06-09T09:52:59.1439309Z             {
2026-06-09T09:52:59.1439436Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1439522Z               "line": 3656
2026-06-09T09:52:59.1439598Z             },
2026-06-09T09:52:59.1439668Z             {
2026-06-09T09:52:59.1439767Z               "path": "crates/spt/src/wansend.rs",
2026-06-09T09:52:59.1439853Z               "line": 419
2026-06-09T09:52:59.1439940Z             }
2026-06-09T09:52:59.1440048Z           ]
2026-06-09T09:52:59.1440139Z         },
2026-06-09T09:52:59.1440221Z         "int": {
2026-06-09T09:52:59.1440312Z           "complete": true,
2026-06-09T09:52:59.1440406Z           "evidence": [
2026-06-09T09:52:59.1440483Z             {
2026-06-09T09:52:59.1440612Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1440702Z               "line": 814
2026-06-09T09:52:59.1440798Z             }
2026-06-09T09:52:59.1440879Z           ]
2026-06-09T09:52:59.1440945Z         },
2026-06-09T09:52:59.1441026Z         "unit": {
2026-06-09T09:52:59.1441122Z           "complete": true,
2026-06-09T09:52:59.1441213Z           "evidence": [
2026-06-09T09:52:59.1441298Z             {
2026-06-09T09:52:59.1441408Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.1441504Z               "line": 341
2026-06-09T09:52:59.1441588Z             },
2026-06-09T09:52:59.1441670Z             {
2026-06-09T09:52:59.1441786Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-09T09:52:59.1441880Z               "line": 151
2026-06-09T09:52:59.1441966Z             },
2026-06-09T09:52:59.1442043Z             {
2026-06-09T09:52:59.1442171Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-09T09:52:59.1442260Z               "line": 61
2026-06-09T09:52:59.1442345Z             },
2026-06-09T09:52:59.1442428Z             {
2026-06-09T09:52:59.1442547Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T09:52:59.1442637Z               "line": 111
2026-06-09T09:52:59.1442723Z             },
2026-06-09T09:52:59.1442805Z             {
2026-06-09T09:52:59.1442918Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T09:52:59.1443009Z               "line": 138
2026-06-09T09:52:59.1443091Z             },
2026-06-09T09:52:59.1443181Z             {
2026-06-09T09:52:59.1443299Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-09T09:52:59.1443392Z               "line": 148
2026-06-09T09:52:59.1443477Z             },
2026-06-09T09:52:59.1443552Z             {
2026-06-09T09:52:59.1443663Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1443753Z               "line": 6912
2026-06-09T09:52:59.1443839Z             }
2026-06-09T09:52:59.1443929Z           ]
2026-06-09T09:52:59.1444007Z         }
2026-06-09T09:52:59.1444092Z       }
2026-06-09T09:52:59.1444172Z     },
2026-06-09T09:52:59.1444258Z     {
2026-06-09T09:52:59.1444346Z       "id": "REQ-SUBNET-6",
2026-06-09T09:52:59.1445033Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-09T09:52:59.1445242Z       "requiredStages": [
2026-06-09T09:52:59.1445414Z         "impl",
2026-06-09T09:52:59.1445499Z         "unit"
2026-06-09T09:52:59.1445580Z       ],
2026-06-09T09:52:59.1445667Z       "stages": {
2026-06-09T09:52:59.1445757Z         "doc": {
2026-06-09T09:52:59.1445847Z           "complete": false,
2026-06-09T09:52:59.1445935Z           "evidence": []
2026-06-09T09:52:59.1446015Z         },
2026-06-09T09:52:59.1446110Z         "impl": {
2026-06-09T09:52:59.1446196Z           "complete": true,
2026-06-09T09:52:59.1446291Z           "evidence": [
2026-06-09T09:52:59.1446372Z             {
2026-06-09T09:52:59.1446491Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1446583Z               "line": 238
2026-06-09T09:52:59.1446668Z             },
2026-06-09T09:52:59.1446754Z             {
2026-06-09T09:52:59.1446854Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1446945Z               "line": 3314
2026-06-09T09:52:59.1447035Z             },
2026-06-09T09:52:59.1447116Z             {
2026-06-09T09:52:59.1447236Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1447330Z               "line": 3331
2026-06-09T09:52:59.1447415Z             },
2026-06-09T09:52:59.1447496Z             {
2026-06-09T09:52:59.1447601Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1447690Z               "line": 3384
2026-06-09T09:52:59.1447770Z             },
2026-06-09T09:52:59.1447852Z             {
2026-06-09T09:52:59.1447947Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1448038Z               "line": 3407
2026-06-09T09:52:59.1448119Z             }
2026-06-09T09:52:59.1448205Z           ]
2026-06-09T09:52:59.1448291Z         },
2026-06-09T09:52:59.1448376Z         "int": {
2026-06-09T09:52:59.1448472Z           "complete": false,
2026-06-09T09:52:59.1448558Z           "evidence": []
2026-06-09T09:52:59.1448644Z         },
2026-06-09T09:52:59.1448723Z         "unit": {
2026-06-09T09:52:59.1448820Z           "complete": true,
2026-06-09T09:52:59.1448915Z           "evidence": [
2026-06-09T09:52:59.1449068Z             {
2026-06-09T09:52:59.1449173Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1449263Z               "line": 6926
2026-06-09T09:52:59.1449348Z             },
2026-06-09T09:52:59.1449431Z             {
2026-06-09T09:52:59.1449531Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1449625Z               "line": 6959
2026-06-09T09:52:59.1449707Z             },
2026-06-09T09:52:59.1449793Z             {
2026-06-09T09:52:59.1449888Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1449987Z               "line": 6968
2026-06-09T09:52:59.1450063Z             }
2026-06-09T09:52:59.1450149Z           ]
2026-06-09T09:52:59.1450242Z         }
2026-06-09T09:52:59.1450318Z       }
2026-06-09T09:52:59.1450409Z     },
2026-06-09T09:52:59.1450485Z     {
2026-06-09T09:52:59.1450580Z       "id": "REQ-SUBNET-7",
2026-06-09T09:52:59.1454523Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-09T09:52:59.1454666Z       "requiredStages": [
2026-06-09T09:52:59.1454761Z         "impl",
2026-06-09T09:52:59.1454833Z         "unit"
2026-06-09T09:52:59.1454915Z       ],
2026-06-09T09:52:59.1455008Z       "stages": {
2026-06-09T09:52:59.1455242Z         "doc": {
2026-06-09T09:52:59.1455335Z           "complete": false,
2026-06-09T09:52:59.1455425Z           "evidence": []
2026-06-09T09:52:59.1455511Z         },
2026-06-09T09:52:59.1455598Z         "impl": {
2026-06-09T09:52:59.1455697Z           "complete": true,
2026-06-09T09:52:59.1455792Z           "evidence": [
2026-06-09T09:52:59.1455983Z             {
2026-06-09T09:52:59.1456121Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-09T09:52:59.1456213Z               "line": 17
2026-06-09T09:52:59.1456303Z             },
2026-06-09T09:52:59.1456384Z             {
2026-06-09T09:52:59.1456514Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1456604Z               "line": 103
2026-06-09T09:52:59.1456684Z             },
2026-06-09T09:52:59.1456770Z             {
2026-06-09T09:52:59.1456885Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-09T09:52:59.1456975Z               "line": 312
2026-06-09T09:52:59.1457065Z             },
2026-06-09T09:52:59.1457148Z             {
2026-06-09T09:52:59.1457299Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.1457405Z               "line": 388
2026-06-09T09:52:59.1457491Z             },
2026-06-09T09:52:59.1457575Z             {
2026-06-09T09:52:59.1457715Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1457806Z               "line": 160
2026-06-09T09:52:59.1457895Z             },
2026-06-09T09:52:59.1457980Z             {
2026-06-09T09:52:59.1458104Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1458198Z               "line": 417
2026-06-09T09:52:59.1458283Z             },
2026-06-09T09:52:59.1458369Z             {
2026-06-09T09:52:59.1458494Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1458593Z               "line": 590
2026-06-09T09:52:59.1458679Z             },
2026-06-09T09:52:59.1458756Z             {
2026-06-09T09:52:59.1458893Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1459080Z               "line": 630
2026-06-09T09:52:59.1459161Z             },
2026-06-09T09:52:59.1459246Z             {
2026-06-09T09:52:59.1459376Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1459466Z               "line": 686
2026-06-09T09:52:59.1459551Z             },
2026-06-09T09:52:59.1459642Z             {
2026-06-09T09:52:59.1459767Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1459861Z               "line": 136
2026-06-09T09:52:59.1459942Z             },
2026-06-09T09:52:59.1460025Z             {
2026-06-09T09:52:59.1460147Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1460228Z               "line": 139
2026-06-09T09:52:59.1460316Z             }
2026-06-09T09:52:59.1460401Z           ]
2026-06-09T09:52:59.1460490Z         },
2026-06-09T09:52:59.1460580Z         "int": {
2026-06-09T09:52:59.1460671Z           "complete": false,
2026-06-09T09:52:59.1460770Z           "evidence": []
2026-06-09T09:52:59.1460854Z         },
2026-06-09T09:52:59.1460940Z         "unit": {
2026-06-09T09:52:59.1461032Z           "complete": true,
2026-06-09T09:52:59.1461127Z           "evidence": [
2026-06-09T09:52:59.1461216Z             {
2026-06-09T09:52:59.1461337Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-09T09:52:59.1461432Z               "line": 136
2026-06-09T09:52:59.1461512Z             },
2026-06-09T09:52:59.1461599Z             {
2026-06-09T09:52:59.1461717Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-09T09:52:59.1461812Z               "line": 156
2026-06-09T09:52:59.1461899Z             },
2026-06-09T09:52:59.1461981Z             {
2026-06-09T09:52:59.1462109Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1462194Z               "line": 905
2026-06-09T09:52:59.1462281Z             },
2026-06-09T09:52:59.1462366Z             {
2026-06-09T09:52:59.1462596Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-09T09:52:59.1462681Z               "line": 927
2026-06-09T09:52:59.1462753Z             },
2026-06-09T09:52:59.1462838Z             {
2026-06-09T09:52:59.1462963Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-09T09:52:59.1463149Z               "line": 1419
2026-06-09T09:52:59.1463230Z             },
2026-06-09T09:52:59.1463325Z             {
2026-06-09T09:52:59.1463442Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-09T09:52:59.1463528Z               "line": 985
2026-06-09T09:52:59.1463620Z             }
2026-06-09T09:52:59.1463700Z           ]
2026-06-09T09:52:59.1463790Z         }
2026-06-09T09:52:59.1463877Z       }
2026-06-09T09:52:59.1463963Z     },
2026-06-09T09:52:59.1464048Z     {
2026-06-09T09:52:59.1464139Z       "id": "REQ-SUBNET-8",
2026-06-09T09:52:59.1465302Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-09T09:52:59.1465407Z       "requiredStages": [
2026-06-09T09:52:59.1465513Z         "impl",
2026-06-09T09:52:59.1465635Z         "unit"
2026-06-09T09:52:59.1465745Z       ],
2026-06-09T09:52:59.1465830Z       "stages": {
2026-06-09T09:52:59.1465914Z         "doc": {
2026-06-09T09:52:59.1466032Z           "complete": false,
2026-06-09T09:52:59.1466134Z           "evidence": []
2026-06-09T09:52:59.1466215Z         },
2026-06-09T09:52:59.1466300Z         "impl": {
2026-06-09T09:52:59.1466391Z           "complete": true,
2026-06-09T09:52:59.1466477Z           "evidence": [
2026-06-09T09:52:59.1466562Z             {
2026-06-09T09:52:59.1466686Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1466787Z               "line": 2703
2026-06-09T09:52:59.1466905Z             },
2026-06-09T09:52:59.1466991Z             {
2026-06-09T09:52:59.1467093Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1467192Z               "line": 2732
2026-06-09T09:52:59.1467292Z             },
2026-06-09T09:52:59.1467393Z             {
2026-06-09T09:52:59.1467502Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1467597Z               "line": 2749
2026-06-09T09:52:59.1467679Z             },
2026-06-09T09:52:59.1467760Z             {
2026-06-09T09:52:59.1467864Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1467950Z               "line": 3170
2026-06-09T09:52:59.1468037Z             }
2026-06-09T09:52:59.1468117Z           ]
2026-06-09T09:52:59.1468208Z         },
2026-06-09T09:52:59.1468294Z         "int": {
2026-06-09T09:52:59.1468385Z           "complete": false,
2026-06-09T09:52:59.1468484Z           "evidence": []
2026-06-09T09:52:59.1468568Z         },
2026-06-09T09:52:59.1468660Z         "unit": {
2026-06-09T09:52:59.1468758Z           "complete": true,
2026-06-09T09:52:59.1468848Z           "evidence": [
2026-06-09T09:52:59.1468934Z             {
2026-06-09T09:52:59.1469124Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1469219Z               "line": 7116
2026-06-09T09:52:59.1469302Z             }
2026-06-09T09:52:59.1469397Z           ]
2026-06-09T09:52:59.1469477Z         }
2026-06-09T09:52:59.1469563Z       }
2026-06-09T09:52:59.1469654Z     },
2026-06-09T09:52:59.1469735Z     {
2026-06-09T09:52:59.1469830Z       "id": "REQ-TERM-1",
2026-06-09T09:52:59.1470007Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-09T09:52:59.1470111Z       "requiredStages": [
2026-06-09T09:52:59.1470197Z         "impl",
2026-06-09T09:52:59.1470284Z         "unit"
2026-06-09T09:52:59.1470397Z       ],
2026-06-09T09:52:59.1470507Z       "stages": {
2026-06-09T09:52:59.1470594Z         "doc": {
2026-06-09T09:52:59.1470684Z           "complete": false,
2026-06-09T09:52:59.1470914Z           "evidence": []
2026-06-09T09:52:59.1470994Z         },
2026-06-09T09:52:59.1471083Z         "impl": {
2026-06-09T09:52:59.1471226Z           "complete": true,
2026-06-09T09:52:59.1471316Z           "evidence": [
2026-06-09T09:52:59.1471400Z             {
2026-06-09T09:52:59.1471520Z               "path": "crates/spt-term/src/pty.rs",
2026-06-09T09:52:59.1471815Z               "line": 59
2026-06-09T09:52:59.1471935Z             },
2026-06-09T09:52:59.1472025Z             {
2026-06-09T09:52:59.1472139Z               "path": "crates/spt-term/src/pty.rs",
2026-06-09T09:52:59.1472216Z               "line": 171
2026-06-09T09:52:59.1472302Z             },
2026-06-09T09:52:59.1472382Z             {
2026-06-09T09:52:59.1472512Z               "path": "crates/spt-term/src/surface.rs",
2026-06-09T09:52:59.1472593Z               "line": 100
2026-06-09T09:52:59.1472678Z             }
2026-06-09T09:52:59.1472764Z           ]
2026-06-09T09:52:59.1472846Z         },
2026-06-09T09:52:59.1472935Z         "int": {
2026-06-09T09:52:59.1473026Z           "complete": false,
2026-06-09T09:52:59.1473118Z           "evidence": []
2026-06-09T09:52:59.1473203Z         },
2026-06-09T09:52:59.1473283Z         "unit": {
2026-06-09T09:52:59.1473374Z           "complete": true,
2026-06-09T09:52:59.1473461Z           "evidence": [
2026-06-09T09:52:59.1473556Z             {
2026-06-09T09:52:59.1473670Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-09T09:52:59.1473762Z               "line": 24
2026-06-09T09:52:59.1473843Z             },
2026-06-09T09:52:59.1473927Z             {
2026-06-09T09:52:59.1474045Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-09T09:52:59.1474132Z               "line": 56
2026-06-09T09:52:59.1474218Z             }
2026-06-09T09:52:59.1474293Z           ]
2026-06-09T09:52:59.1474379Z         }
2026-06-09T09:52:59.1474462Z       }
2026-06-09T09:52:59.1474547Z     },
2026-06-09T09:52:59.1474636Z     {
2026-06-09T09:52:59.1474723Z       "id": "REQ-TERM-2",
2026-06-09T09:52:59.1474913Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-09T09:52:59.1475009Z       "requiredStages": [
2026-06-09T09:52:59.1475100Z         "impl",
2026-06-09T09:52:59.1475185Z         "unit"
2026-06-09T09:52:59.1475270Z       ],
2026-06-09T09:52:59.1475363Z       "stages": {
2026-06-09T09:52:59.1475448Z         "doc": {
2026-06-09T09:52:59.1475552Z           "complete": false,
2026-06-09T09:52:59.1475643Z           "evidence": []
2026-06-09T09:52:59.1475730Z         },
2026-06-09T09:52:59.1475814Z         "impl": {
2026-06-09T09:52:59.1475914Z           "complete": true,
2026-06-09T09:52:59.1476011Z           "evidence": [
2026-06-09T09:52:59.1476097Z             {
2026-06-09T09:52:59.1476214Z               "path": "crates/spt-term/src/surface.rs",
2026-06-09T09:52:59.1476300Z               "line": 117
2026-06-09T09:52:59.1476386Z             },
2026-06-09T09:52:59.1476470Z             {
2026-06-09T09:52:59.1476583Z               "path": "crates/spt-term/src/surface.rs",
2026-06-09T09:52:59.1476679Z               "line": 127
2026-06-09T09:52:59.1476761Z             }
2026-06-09T09:52:59.1476850Z           ]
2026-06-09T09:52:59.1476937Z         },
2026-06-09T09:52:59.1477023Z         "int": {
2026-06-09T09:52:59.1477113Z           "complete": false,
2026-06-09T09:52:59.1477208Z           "evidence": []
2026-06-09T09:52:59.1477300Z         },
2026-06-09T09:52:59.1477380Z         "unit": {
2026-06-09T09:52:59.1477475Z           "complete": true,
2026-06-09T09:52:59.1477561Z           "evidence": [
2026-06-09T09:52:59.1477648Z             {
2026-06-09T09:52:59.1477762Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-09T09:52:59.1477857Z               "line": 46
2026-06-09T09:52:59.1477948Z             },
2026-06-09T09:52:59.1478028Z             {
2026-06-09T09:52:59.1478143Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-09T09:52:59.1478230Z               "line": 77
2026-06-09T09:52:59.1478315Z             }
2026-06-09T09:52:59.1478481Z           ]
2026-06-09T09:52:59.1478564Z         }
2026-06-09T09:52:59.1478653Z       }
2026-06-09T09:52:59.1478734Z     },
2026-06-09T09:52:59.1478820Z     {
2026-06-09T09:52:59.1478907Z       "id": "REQ-TERM-3",
2026-06-09T09:52:59.1479138Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-09T09:52:59.1479355Z       "requiredStages": [
2026-06-09T09:52:59.1479450Z         "impl",
2026-06-09T09:52:59.1479542Z         "unit"
2026-06-09T09:52:59.1479623Z       ],
2026-06-09T09:52:59.1479713Z       "stages": {
2026-06-09T09:52:59.1479794Z         "doc": {
2026-06-09T09:52:59.1479895Z           "complete": false,
2026-06-09T09:52:59.1479985Z           "evidence": []
2026-06-09T09:52:59.1480075Z         },
2026-06-09T09:52:59.1480167Z         "impl": {
2026-06-09T09:52:59.1480262Z           "complete": true,
2026-06-09T09:52:59.1480352Z           "evidence": [
2026-06-09T09:52:59.1480438Z             {
2026-06-09T09:52:59.1480558Z               "path": "crates/spt-term/src/stream.rs",
2026-06-09T09:52:59.1480648Z               "line": 71
2026-06-09T09:52:59.1480743Z             }
2026-06-09T09:52:59.1480821Z           ]
2026-06-09T09:52:59.1480905Z         },
2026-06-09T09:52:59.1480996Z         "int": {
2026-06-09T09:52:59.1481082Z           "complete": false,
2026-06-09T09:52:59.1481178Z           "evidence": []
2026-06-09T09:52:59.1481262Z         },
2026-06-09T09:52:59.1481354Z         "unit": {
2026-06-09T09:52:59.1481450Z           "complete": true,
2026-06-09T09:52:59.1481540Z           "evidence": [
2026-06-09T09:52:59.1481629Z             {
2026-06-09T09:52:59.1481748Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-09T09:52:59.1481838Z               "line": 37
2026-06-09T09:52:59.1481922Z             },
2026-06-09T09:52:59.1482012Z             {
2026-06-09T09:52:59.1482137Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-09T09:52:59.1482223Z               "line": 67
2026-06-09T09:52:59.1482308Z             }
2026-06-09T09:52:59.1482399Z           ]
2026-06-09T09:52:59.1482481Z         }
2026-06-09T09:52:59.1482566Z       }
2026-06-09T09:52:59.1482661Z     },
2026-06-09T09:52:59.1482752Z     {
2026-06-09T09:52:59.1482838Z       "id": "REQ-TERM-4",
2026-06-09T09:52:59.1483205Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-09T09:52:59.1483305Z       "requiredStages": [
2026-06-09T09:52:59.1483396Z         "impl",
2026-06-09T09:52:59.1483477Z         "unit",
2026-06-09T09:52:59.1483563Z         "int"
2026-06-09T09:52:59.1483653Z       ],
2026-06-09T09:52:59.1483735Z       "stages": {
2026-06-09T09:52:59.1483829Z         "doc": {
2026-06-09T09:52:59.1483915Z           "complete": true,
2026-06-09T09:52:59.1484003Z           "evidence": [
2026-06-09T09:52:59.1484088Z             {
2026-06-09T09:52:59.1484197Z               "path": "docs/MANIFEST.md",
2026-06-09T09:52:59.1484288Z               "line": 115
2026-06-09T09:52:59.1484369Z             }
2026-06-09T09:52:59.1484463Z           ]
2026-06-09T09:52:59.1484548Z         },
2026-06-09T09:52:59.1484644Z         "impl": {
2026-06-09T09:52:59.1484730Z           "complete": true,
2026-06-09T09:52:59.1484821Z           "evidence": [
2026-06-09T09:52:59.1484911Z             {
2026-06-09T09:52:59.1485026Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-09T09:52:59.1485126Z               "line": 507
2026-06-09T09:52:59.1485206Z             },
2026-06-09T09:52:59.1485293Z             {
2026-06-09T09:52:59.1485412Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1485511Z               "line": 41
2026-06-09T09:52:59.1485598Z             },
2026-06-09T09:52:59.1485679Z             {
2026-06-09T09:52:59.1485802Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1485888Z               "line": 91
2026-06-09T09:52:59.1485980Z             },
2026-06-09T09:52:59.1486060Z             {
2026-06-09T09:52:59.1486179Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1486384Z               "line": 152
2026-06-09T09:52:59.1486465Z             },
2026-06-09T09:52:59.1486552Z             {
2026-06-09T09:52:59.1486662Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1486755Z               "line": 221
2026-06-09T09:52:59.1486908Z             },
2026-06-09T09:52:59.1486997Z             {
2026-06-09T09:52:59.1487125Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1487215Z               "line": 20
2026-06-09T09:52:59.1487307Z             },
2026-06-09T09:52:59.1487387Z             {
2026-06-09T09:52:59.1487516Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1487607Z               "line": 222
2026-06-09T09:52:59.1487692Z             },
2026-06-09T09:52:59.1487778Z             {
2026-06-09T09:52:59.1487903Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1488003Z               "line": 242
2026-06-09T09:52:59.1488092Z             },
2026-06-09T09:52:59.1488179Z             {
2026-06-09T09:52:59.1488308Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.1488397Z               "line": 625
2026-06-09T09:52:59.1488484Z             },
2026-06-09T09:52:59.1488565Z             {
2026-06-09T09:52:59.1488684Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1488775Z               "line": 162
2026-06-09T09:52:59.1488866Z             },
2026-06-09T09:52:59.1489022Z             {
2026-06-09T09:52:59.1489138Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1489237Z               "line": 206
2026-06-09T09:52:59.1489318Z             },
2026-06-09T09:52:59.1489410Z             {
2026-06-09T09:52:59.1489519Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1489613Z               "line": 233
2026-06-09T09:52:59.1489698Z             },
2026-06-09T09:52:59.1489780Z             {
2026-06-09T09:52:59.1489888Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1489982Z               "line": 837
2026-06-09T09:52:59.1490068Z             }
2026-06-09T09:52:59.1490150Z           ]
2026-06-09T09:52:59.1490240Z         },
2026-06-09T09:52:59.1490330Z         "int": {
2026-06-09T09:52:59.1490422Z           "complete": true,
2026-06-09T09:52:59.1490522Z           "evidence": [
2026-06-09T09:52:59.1490607Z             {
2026-06-09T09:52:59.1490727Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-09T09:52:59.1490817Z               "line": 18
2026-06-09T09:52:59.1490902Z             }
2026-06-09T09:52:59.1490988Z           ]
2026-06-09T09:52:59.1491071Z         },
2026-06-09T09:52:59.1491160Z         "unit": {
2026-06-09T09:52:59.1491251Z           "complete": true,
2026-06-09T09:52:59.1491347Z           "evidence": [
2026-06-09T09:52:59.1491432Z             {
2026-06-09T09:52:59.1491551Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1491642Z               "line": 259
2026-06-09T09:52:59.1491729Z             },
2026-06-09T09:52:59.1491804Z             {
2026-06-09T09:52:59.1491909Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1492005Z               "line": 277
2026-06-09T09:52:59.1492086Z             },
2026-06-09T09:52:59.1492171Z             {
2026-06-09T09:52:59.1492289Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1492380Z               "line": 289
2026-06-09T09:52:59.1492468Z             },
2026-06-09T09:52:59.1492549Z             {
2026-06-09T09:52:59.1492683Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1492760Z               "line": 304
2026-06-09T09:52:59.1492854Z             },
2026-06-09T09:52:59.1492935Z             {
2026-06-09T09:52:59.1493046Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1493164Z               "line": 320
2026-06-09T09:52:59.1493235Z             },
2026-06-09T09:52:59.1493317Z             {
2026-06-09T09:52:59.1493431Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1493628Z               "line": 346
2026-06-09T09:52:59.1493717Z             },
2026-06-09T09:52:59.1493794Z             {
2026-06-09T09:52:59.1493933Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1494023Z               "line": 361
2026-06-09T09:52:59.1494238Z             },
2026-06-09T09:52:59.1494328Z             {
2026-06-09T09:52:59.1494438Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-09T09:52:59.1494529Z               "line": 391
2026-06-09T09:52:59.1494615Z             },
2026-06-09T09:52:59.1494704Z             {
2026-06-09T09:52:59.1494819Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1494911Z               "line": 365
2026-06-09T09:52:59.1495000Z             },
2026-06-09T09:52:59.1495084Z             {
2026-06-09T09:52:59.1495209Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1495295Z               "line": 382
2026-06-09T09:52:59.1495395Z             },
2026-06-09T09:52:59.1495481Z             {
2026-06-09T09:52:59.1495601Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1495695Z               "line": 411
2026-06-09T09:52:59.1495780Z             },
2026-06-09T09:52:59.1495867Z             {
2026-06-09T09:52:59.1495987Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-09T09:52:59.1496081Z               "line": 428
2026-06-09T09:52:59.1496163Z             },
2026-06-09T09:52:59.1496254Z             {
2026-06-09T09:52:59.1496372Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.1496458Z               "line": 828
2026-06-09T09:52:59.1496545Z             },
2026-06-09T09:52:59.1496625Z             {
2026-06-09T09:52:59.1496744Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.1496836Z               "line": 835
2026-06-09T09:52:59.1496926Z             },
2026-06-09T09:52:59.1497011Z             {
2026-06-09T09:52:59.1497136Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.1497227Z               "line": 850
2026-06-09T09:52:59.1497310Z             },
2026-06-09T09:52:59.1497396Z             {
2026-06-09T09:52:59.1497511Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1497604Z               "line": 420
2026-06-09T09:52:59.1497694Z             },
2026-06-09T09:52:59.1497771Z             {
2026-06-09T09:52:59.1497882Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1497966Z               "line": 458
2026-06-09T09:52:59.1498052Z             },
2026-06-09T09:52:59.1498129Z             {
2026-06-09T09:52:59.1498243Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1498333Z               "line": 471
2026-06-09T09:52:59.1498415Z             },
2026-06-09T09:52:59.1498505Z             {
2026-06-09T09:52:59.1498614Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1498711Z               "line": 497
2026-06-09T09:52:59.1498801Z             },
2026-06-09T09:52:59.1498882Z             {
2026-06-09T09:52:59.1499073Z               "path": "crates/spt-term/src/digest.rs",
2026-06-09T09:52:59.1499153Z               "line": 524
2026-06-09T09:52:59.1499244Z             },
2026-06-09T09:52:59.1499325Z             {
2026-06-09T09:52:59.1499450Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-09T09:52:59.1499540Z               "line": 32
2026-06-09T09:52:59.1499621Z             },
2026-06-09T09:52:59.1499708Z             {
2026-06-09T09:52:59.1499811Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1499907Z               "line": 6684
2026-06-09T09:52:59.1499994Z             }
2026-06-09T09:52:59.1500080Z           ]
2026-06-09T09:52:59.1500164Z         }
2026-06-09T09:52:59.1500244Z       }
2026-06-09T09:52:59.1500330Z     },
2026-06-09T09:52:59.1500411Z     {
2026-06-09T09:52:59.1500504Z       "id": "REQ-UPD-1",
2026-06-09T09:52:59.1500624Z       "title": "Peer-propagated update over P2P",
2026-06-09T09:52:59.1500866Z       "requiredStages": [
2026-06-09T09:52:59.1500953Z         "impl",
2026-06-09T09:52:59.1501039Z         "unit",
2026-06-09T09:52:59.1501129Z         "int"
2026-06-09T09:52:59.1501210Z       ],
2026-06-09T09:52:59.1501297Z       "stages": {
2026-06-09T09:52:59.1501382Z         "doc": {
2026-06-09T09:52:59.1501568Z           "complete": false,
2026-06-09T09:52:59.1501659Z           "evidence": []
2026-06-09T09:52:59.1501749Z         },
2026-06-09T09:52:59.1501839Z         "impl": {
2026-06-09T09:52:59.1501931Z           "complete": true,
2026-06-09T09:52:59.1502025Z           "evidence": [
2026-06-09T09:52:59.1502106Z             {
2026-06-09T09:52:59.1502236Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1502326Z               "line": 28
2026-06-09T09:52:59.1502411Z             },
2026-06-09T09:52:59.1502498Z             {
2026-06-09T09:52:59.1502613Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1502711Z               "line": 103
2026-06-09T09:52:59.1502796Z             },
2026-06-09T09:52:59.1502882Z             {
2026-06-09T09:52:59.1503005Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1503090Z               "line": 342
2026-06-09T09:52:59.1503185Z             },
2026-06-09T09:52:59.1503272Z             {
2026-06-09T09:52:59.1503395Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1503476Z               "line": 22
2026-06-09T09:52:59.1503563Z             },
2026-06-09T09:52:59.1503649Z             {
2026-06-09T09:52:59.1503810Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1503901Z               "line": 145
2026-06-09T09:52:59.1503982Z             },
2026-06-09T09:52:59.1504072Z             {
2026-06-09T09:52:59.1504183Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1504277Z               "line": 221
2026-06-09T09:52:59.1504363Z             },
2026-06-09T09:52:59.1504449Z             {
2026-06-09T09:52:59.1504568Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1504654Z               "line": 278
2026-06-09T09:52:59.1504740Z             },
2026-06-09T09:52:59.1504822Z             {
2026-06-09T09:52:59.1504940Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.1505036Z               "line": 37
2026-06-09T09:52:59.1505118Z             }
2026-06-09T09:52:59.1505208Z           ]
2026-06-09T09:52:59.1505288Z         },
2026-06-09T09:52:59.1505379Z         "int": {
2026-06-09T09:52:59.1505471Z           "complete": true,
2026-06-09T09:52:59.1505569Z           "evidence": [
2026-06-09T09:52:59.1505654Z             {
2026-06-09T09:52:59.1505774Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-09T09:52:59.1505865Z               "line": 207
2026-06-09T09:52:59.1505955Z             },
2026-06-09T09:52:59.1506036Z             {
2026-06-09T09:52:59.1506151Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-09T09:52:59.1506251Z               "line": 987
2026-06-09T09:52:59.1506340Z             }
2026-06-09T09:52:59.1506423Z           ]
2026-06-09T09:52:59.1506518Z         },
2026-06-09T09:52:59.1506598Z         "unit": {
2026-06-09T09:52:59.1506694Z           "complete": true,
2026-06-09T09:52:59.1506780Z           "evidence": [
2026-06-09T09:52:59.1506875Z             {
2026-06-09T09:52:59.1506999Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1507086Z               "line": 381
2026-06-09T09:52:59.1507171Z             },
2026-06-09T09:52:59.1507252Z             {
2026-06-09T09:52:59.1507377Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1507462Z               "line": 440
2026-06-09T09:52:59.1507547Z             },
2026-06-09T09:52:59.1507634Z             {
2026-06-09T09:52:59.1507763Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T09:52:59.1507852Z               "line": 277
2026-06-09T09:52:59.1508014Z             },
2026-06-09T09:52:59.1508099Z             {
2026-06-09T09:52:59.1508216Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.1508312Z               "line": 124
2026-06-09T09:52:59.1508403Z             },
2026-06-09T09:52:59.1508484Z             {
2026-06-09T09:52:59.1508607Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.1508770Z               "line": 200
2026-06-09T09:52:59.1508859Z             }
2026-06-09T09:52:59.1509038Z           ]
2026-06-09T09:52:59.1509123Z         }
2026-06-09T09:52:59.1509208Z       }
2026-06-09T09:52:59.1509290Z     },
2026-06-09T09:52:59.1509371Z     {
2026-06-09T09:52:59.1509471Z       "id": "REQ-UPD-2",
2026-06-09T09:52:59.1509628Z       "title": "All binaries signature-verified before handoff",
2026-06-09T09:52:59.1509723Z       "requiredStages": [
2026-06-09T09:52:59.1509813Z         "impl",
2026-06-09T09:52:59.1509900Z         "unit"
2026-06-09T09:52:59.1509982Z       ],
2026-06-09T09:52:59.1510075Z       "stages": {
2026-06-09T09:52:59.1510161Z         "doc": {
2026-06-09T09:52:59.1510258Z           "complete": false,
2026-06-09T09:52:59.1510348Z           "evidence": []
2026-06-09T09:52:59.1510448Z         },
2026-06-09T09:52:59.1510592Z         "impl": {
2026-06-09T09:52:59.1510687Z           "complete": true,
2026-06-09T09:52:59.1510786Z           "evidence": [
2026-06-09T09:52:59.1510867Z             {
2026-06-09T09:52:59.1510990Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1511079Z               "line": 343
2026-06-09T09:52:59.1511169Z             },
2026-06-09T09:52:59.1511261Z             {
2026-06-09T09:52:59.1511379Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1511469Z               "line": 469
2026-06-09T09:52:59.1511552Z             },
2026-06-09T09:52:59.1511637Z             {
2026-06-09T09:52:59.1511751Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1511847Z               "line": 29
2026-06-09T09:52:59.1511937Z             },
2026-06-09T09:52:59.1512023Z             {
2026-06-09T09:52:59.1512137Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1512224Z               "line": 271
2026-06-09T09:52:59.1512314Z             },
2026-06-09T09:52:59.1512404Z             {
2026-06-09T09:52:59.1512515Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1512609Z               "line": 288
2026-06-09T09:52:59.1512690Z             },
2026-06-09T09:52:59.1512772Z             {
2026-06-09T09:52:59.1512887Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1512981Z               "line": 408
2026-06-09T09:52:59.1513067Z             },
2026-06-09T09:52:59.1513150Z             {
2026-06-09T09:52:59.1513262Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1513347Z               "line": 540
2026-06-09T09:52:59.1513438Z             },
2026-06-09T09:52:59.1513514Z             {
2026-06-09T09:52:59.1513636Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1513731Z               "line": 155
2026-06-09T09:52:59.1513808Z             }
2026-06-09T09:52:59.1513894Z           ]
2026-06-09T09:52:59.1513974Z         },
2026-06-09T09:52:59.1514070Z         "int": {
2026-06-09T09:52:59.1514166Z           "complete": false,
2026-06-09T09:52:59.1514260Z           "evidence": []
2026-06-09T09:52:59.1514351Z         },
2026-06-09T09:52:59.1514433Z         "unit": {
2026-06-09T09:52:59.1514528Z           "complete": true,
2026-06-09T09:52:59.1514613Z           "evidence": [
2026-06-09T09:52:59.1514709Z             {
2026-06-09T09:52:59.1514819Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1514909Z               "line": 697
2026-06-09T09:52:59.1515004Z             },
2026-06-09T09:52:59.1515091Z             {
2026-06-09T09:52:59.1515205Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1515295Z               "line": 758
2026-06-09T09:52:59.1515495Z             },
2026-06-09T09:52:59.1515576Z             {
2026-06-09T09:52:59.1515692Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1515791Z               "line": 772
2026-06-09T09:52:59.1515872Z             },
2026-06-09T09:52:59.1515959Z             {
2026-06-09T09:52:59.1516069Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1516257Z               "line": 788
2026-06-09T09:52:59.1516329Z             },
2026-06-09T09:52:59.1516416Z             {
2026-06-09T09:52:59.1516524Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1516610Z               "line": 879
2026-06-09T09:52:59.1516697Z             },
2026-06-09T09:52:59.1516778Z             {
2026-06-09T09:52:59.1516896Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1516983Z               "line": 414
2026-06-09T09:52:59.1517073Z             },
2026-06-09T09:52:59.1517168Z             {
2026-06-09T09:52:59.1517288Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1517393Z               "line": 427
2026-06-09T09:52:59.1517483Z             },
2026-06-09T09:52:59.1517588Z             {
2026-06-09T09:52:59.1517721Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T09:52:59.1517836Z               "line": 410
2026-06-09T09:52:59.1517947Z             }
2026-06-09T09:52:59.1518041Z           ]
2026-06-09T09:52:59.1518155Z         }
2026-06-09T09:52:59.1518247Z       }
2026-06-09T09:52:59.1518374Z     },
2026-06-09T09:52:59.1518464Z     {
2026-06-09T09:52:59.1518574Z       "id": "REQ-UPD-3",
2026-06-09T09:52:59.1518767Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-09T09:52:59.1518872Z       "requiredStages": [
2026-06-09T09:52:59.1519039Z         "impl",
2026-06-09T09:52:59.1519129Z         "unit",
2026-06-09T09:52:59.1519221Z         "int"
2026-06-09T09:52:59.1519302Z       ],
2026-06-09T09:52:59.1519410Z       "stages": {
2026-06-09T09:52:59.1519511Z         "doc": {
2026-06-09T09:52:59.1519607Z           "complete": false,
2026-06-09T09:52:59.1519735Z           "evidence": []
2026-06-09T09:52:59.1519826Z         },
2026-06-09T09:52:59.1522497Z         "impl": {
2026-06-09T09:52:59.1522625Z           "complete": true,
2026-06-09T09:52:59.1522731Z           "evidence": [
2026-06-09T09:52:59.1522840Z             {
2026-06-09T09:52:59.1522984Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1523085Z               "line": 39
2026-06-09T09:52:59.1523179Z             },
2026-06-09T09:52:59.1523279Z             {
2026-06-09T09:52:59.1523414Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1523522Z               "line": 77
2026-06-09T09:52:59.1523623Z             },
2026-06-09T09:52:59.1523710Z             {
2026-06-09T09:52:59.1523846Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1523940Z               "line": 26
2026-06-09T09:52:59.1524036Z             },
2026-06-09T09:52:59.1524139Z             {
2026-06-09T09:52:59.1524262Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1524368Z               "line": 114
2026-06-09T09:52:59.1524454Z             },
2026-06-09T09:52:59.1524549Z             {
2026-06-09T09:52:59.1524669Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1524774Z               "line": 246
2026-06-09T09:52:59.1524863Z             },
2026-06-09T09:52:59.1524950Z             {
2026-06-09T09:52:59.1525074Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1525168Z               "line": 1717
2026-06-09T09:52:59.1525270Z             }
2026-06-09T09:52:59.1525355Z           ]
2026-06-09T09:52:59.1525455Z         },
2026-06-09T09:52:59.1525550Z         "int": {
2026-06-09T09:52:59.1525652Z           "complete": true,
2026-06-09T09:52:59.1525756Z           "evidence": [
2026-06-09T09:52:59.1525846Z             {
2026-06-09T09:52:59.1525990Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-09T09:52:59.1526252Z               "line": 23
2026-06-09T09:52:59.1526356Z             }
2026-06-09T09:52:59.1526451Z           ]
2026-06-09T09:52:59.1526539Z         },
2026-06-09T09:52:59.1526638Z         "unit": {
2026-06-09T09:52:59.1526737Z           "complete": true,
2026-06-09T09:52:59.1526846Z           "evidence": [
2026-06-09T09:52:59.1527061Z             {
2026-06-09T09:52:59.1527209Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1527309Z               "line": 530
2026-06-09T09:52:59.1527433Z             },
2026-06-09T09:52:59.1527562Z             {
2026-06-09T09:52:59.1527686Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1527790Z               "line": 598
2026-06-09T09:52:59.1527877Z             },
2026-06-09T09:52:59.1527976Z             {
2026-06-09T09:52:59.1528095Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1528182Z               "line": 271
2026-06-09T09:52:59.1528263Z             },
2026-06-09T09:52:59.1528344Z             {
2026-06-09T09:52:59.1528497Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1528610Z               "line": 295
2026-06-09T09:52:59.1528711Z             },
2026-06-09T09:52:59.1528807Z             {
2026-06-09T09:52:59.1528920Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1529124Z               "line": 316
2026-06-09T09:52:59.1529214Z             },
2026-06-09T09:52:59.1529304Z             {
2026-06-09T09:52:59.1529422Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1529524Z               "line": 332
2026-06-09T09:52:59.1529628Z             }
2026-06-09T09:52:59.1529713Z           ]
2026-06-09T09:52:59.1529809Z         }
2026-06-09T09:52:59.1529895Z       }
2026-06-09T09:52:59.1529985Z     },
2026-06-09T09:52:59.1530071Z     {
2026-06-09T09:52:59.1530176Z       "id": "REQ-UPD-4",
2026-06-09T09:52:59.1530371Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-09T09:52:59.1530477Z       "requiredStages": [
2026-06-09T09:52:59.1530576Z         "impl",
2026-06-09T09:52:59.1530667Z         "unit"
2026-06-09T09:52:59.1530768Z       ],
2026-06-09T09:52:59.1530858Z       "stages": {
2026-06-09T09:52:59.1530953Z         "doc": {
2026-06-09T09:52:59.1531059Z           "complete": false,
2026-06-09T09:52:59.1531158Z           "evidence": []
2026-06-09T09:52:59.1531254Z         },
2026-06-09T09:52:59.1531345Z         "impl": {
2026-06-09T09:52:59.1531450Z           "complete": true,
2026-06-09T09:52:59.1531544Z           "evidence": [
2026-06-09T09:52:59.1531641Z             {
2026-06-09T09:52:59.1531774Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1531867Z               "line": 40
2026-06-09T09:52:59.1531962Z             },
2026-06-09T09:52:59.1532044Z             {
2026-06-09T09:52:59.1532176Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1532261Z               "line": 78
2026-06-09T09:52:59.1532371Z             },
2026-06-09T09:52:59.1532467Z             {
2026-06-09T09:52:59.1532590Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T09:52:59.1532696Z               "line": 23
2026-06-09T09:52:59.1532786Z             },
2026-06-09T09:52:59.1532880Z             {
2026-06-09T09:52:59.1533006Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T09:52:59.1533115Z               "line": 56
2026-06-09T09:52:59.1533209Z             },
2026-06-09T09:52:59.1533296Z             {
2026-06-09T09:52:59.1533419Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T09:52:59.1533505Z               "line": 77
2026-06-09T09:52:59.1533607Z             },
2026-06-09T09:52:59.1533688Z             {
2026-06-09T09:52:59.1533815Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-09T09:52:59.1533917Z               "line": 184
2026-06-09T09:52:59.1534003Z             },
2026-06-09T09:52:59.1534106Z             {
2026-06-09T09:52:59.1534350Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-09T09:52:59.1534449Z               "line": 101
2026-06-09T09:52:59.1534544Z             },
2026-06-09T09:52:59.1534635Z             {
2026-06-09T09:52:59.1534761Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.1534851Z               "line": 170
2026-06-09T09:52:59.1535047Z             },
2026-06-09T09:52:59.1535133Z             {
2026-06-09T09:52:59.1535258Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1535362Z               "line": 1716
2026-06-09T09:52:59.1535447Z             }
2026-06-09T09:52:59.1535544Z           ]
2026-06-09T09:52:59.1535629Z         },
2026-06-09T09:52:59.1535733Z         "int": {
2026-06-09T09:52:59.1535830Z           "complete": false,
2026-06-09T09:52:59.1535934Z           "evidence": []
2026-06-09T09:52:59.1536034Z         },
2026-06-09T09:52:59.1536124Z         "unit": {
2026-06-09T09:52:59.1536226Z           "complete": true,
2026-06-09T09:52:59.1536326Z           "evidence": [
2026-06-09T09:52:59.1536416Z             {
2026-06-09T09:52:59.1536541Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1536644Z               "line": 526
2026-06-09T09:52:59.1536745Z             },
2026-06-09T09:52:59.1536832Z             {
2026-06-09T09:52:59.1536968Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1537064Z               "line": 651
2026-06-09T09:52:59.1537161Z             },
2026-06-09T09:52:59.1537250Z             {
2026-06-09T09:52:59.1537372Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-09T09:52:59.1537473Z               "line": 384
2026-06-09T09:52:59.1537565Z             },
2026-06-09T09:52:59.1537654Z             {
2026-06-09T09:52:59.1537774Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T09:52:59.1537874Z               "line": 102
2026-06-09T09:52:59.1537964Z             },
2026-06-09T09:52:59.1538065Z             {
2026-06-09T09:52:59.1538189Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T09:52:59.1538293Z               "line": 123
2026-06-09T09:52:59.1538394Z             },
2026-06-09T09:52:59.1538484Z             {
2026-06-09T09:52:59.1538607Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-09T09:52:59.1538699Z               "line": 142
2026-06-09T09:52:59.1538799Z             },
2026-06-09T09:52:59.1538899Z             {
2026-06-09T09:52:59.1539095Z               "path": "crates/spt-store/src/info.rs",
2026-06-09T09:52:59.1539189Z               "line": 386
2026-06-09T09:52:59.1539266Z             },
2026-06-09T09:52:59.1539352Z             {
2026-06-09T09:52:59.1539467Z               "path": "crates/spt-store/src/perch.rs",
2026-06-09T09:52:59.1539561Z               "line": 556
2026-06-09T09:52:59.1539651Z             },
2026-06-09T09:52:59.1539732Z             {
2026-06-09T09:52:59.1539868Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1539963Z               "line": 5533
2026-06-09T09:52:59.1540059Z             }
2026-06-09T09:52:59.1540141Z           ]
2026-06-09T09:52:59.1540235Z         }
2026-06-09T09:52:59.1540331Z       }
2026-06-09T09:52:59.1540417Z     },
2026-06-09T09:52:59.1540507Z     {
2026-06-09T09:52:59.1540607Z       "id": "REQ-UPD-5",
2026-06-09T09:52:59.1540760Z       "title": "spt-core ripple-updates registered adapters",
2026-06-09T09:52:59.1540865Z       "requiredStages": [
2026-06-09T09:52:59.1540966Z         "impl",
2026-06-09T09:52:59.1541061Z         "unit"
2026-06-09T09:52:59.1541156Z       ],
2026-06-09T09:52:59.1541261Z       "stages": {
2026-06-09T09:52:59.1541352Z         "doc": {
2026-06-09T09:52:59.1541456Z           "complete": false,
2026-06-09T09:52:59.1541556Z           "evidence": []
2026-06-09T09:52:59.1541652Z         },
2026-06-09T09:52:59.1541770Z         "impl": {
2026-06-09T09:52:59.1541871Z           "complete": true,
2026-06-09T09:52:59.1541976Z           "evidence": [
2026-06-09T09:52:59.1542061Z             {
2026-06-09T09:52:59.1542206Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1542405Z               "line": 27
2026-06-09T09:52:59.1542489Z             },
2026-06-09T09:52:59.1542576Z             {
2026-06-09T09:52:59.1542750Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1542845Z               "line": 82
2026-06-09T09:52:59.1543017Z             },
2026-06-09T09:52:59.1543111Z             {
2026-06-09T09:52:59.1543241Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1543337Z               "line": 134
2026-06-09T09:52:59.1543426Z             },
2026-06-09T09:52:59.1543513Z             {
2026-06-09T09:52:59.1543632Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1543722Z               "line": 492
2026-06-09T09:52:59.1543813Z             },
2026-06-09T09:52:59.1543895Z             {
2026-06-09T09:52:59.1544018Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1544113Z               "line": 528
2026-06-09T09:52:59.1544200Z             }
2026-06-09T09:52:59.1544285Z           ]
2026-06-09T09:52:59.1544371Z         },
2026-06-09T09:52:59.1544462Z         "int": {
2026-06-09T09:52:59.1544558Z           "complete": false,
2026-06-09T09:52:59.1544651Z           "evidence": []
2026-06-09T09:52:59.1544733Z         },
2026-06-09T09:52:59.1544825Z         "unit": {
2026-06-09T09:52:59.1544924Z           "complete": true,
2026-06-09T09:52:59.1545018Z           "evidence": [
2026-06-09T09:52:59.1545114Z             {
2026-06-09T09:52:59.1545237Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1545335Z               "line": 232
2026-06-09T09:52:59.1545426Z             },
2026-06-09T09:52:59.1545517Z             {
2026-06-09T09:52:59.1545654Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1545755Z               "line": 246
2026-06-09T09:52:59.1545846Z             },
2026-06-09T09:52:59.1545936Z             {
2026-06-09T09:52:59.1546070Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1546170Z               "line": 260
2026-06-09T09:52:59.1546251Z             },
2026-06-09T09:52:59.1546351Z             {
2026-06-09T09:52:59.1546485Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1546608Z               "line": 274
2026-06-09T09:52:59.1546709Z             },
2026-06-09T09:52:59.1546800Z             {
2026-06-09T09:52:59.1546937Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-09T09:52:59.1547024Z               "line": 308
2026-06-09T09:52:59.1547110Z             },
2026-06-09T09:52:59.1547194Z             {
2026-06-09T09:52:59.1547319Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-09T09:52:59.1547411Z               "line": 792
2026-06-09T09:52:59.1547495Z             }
2026-06-09T09:52:59.1547581Z           ]
2026-06-09T09:52:59.1547669Z         }
2026-06-09T09:52:59.1547754Z       }
2026-06-09T09:52:59.1547847Z     },
2026-06-09T09:52:59.1547937Z     {
2026-06-09T09:52:59.1548033Z       "id": "REQ-UPD-6",
2026-06-09T09:52:59.1548843Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-09T09:52:59.1549026Z       "requiredStages": [
2026-06-09T09:52:59.1549116Z         "doc",
2026-06-09T09:52:59.1549211Z         "impl",
2026-06-09T09:52:59.1549298Z         "unit",
2026-06-09T09:52:59.1549378Z         "int"
2026-06-09T09:52:59.1549468Z       ],
2026-06-09T09:52:59.1549559Z       "stages": {
2026-06-09T09:52:59.1549679Z         "doc": {
2026-06-09T09:52:59.1549773Z           "complete": true,
2026-06-09T09:52:59.1549874Z           "evidence": [
2026-06-09T09:52:59.1549966Z             {
2026-06-09T09:52:59.1550102Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-09T09:52:59.1550330Z               "line": 3
2026-06-09T09:52:59.1550414Z             },
2026-06-09T09:52:59.1550513Z             {
2026-06-09T09:52:59.1550624Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-09T09:52:59.1550733Z               "line": 3
2026-06-09T09:52:59.1550833Z             },
2026-06-09T09:52:59.1551029Z             {
2026-06-09T09:52:59.1551196Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-09T09:52:59.1551296Z               "line": 3
2026-06-09T09:52:59.1551396Z             }
2026-06-09T09:52:59.1551477Z           ]
2026-06-09T09:52:59.1551559Z         },
2026-06-09T09:52:59.1551645Z         "impl": {
2026-06-09T09:52:59.1551739Z           "complete": true,
2026-06-09T09:52:59.1551830Z           "evidence": [
2026-06-09T09:52:59.1551912Z             {
2026-06-09T09:52:59.1552040Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1552126Z               "line": 175
2026-06-09T09:52:59.1552222Z             },
2026-06-09T09:52:59.1552311Z             {
2026-06-09T09:52:59.1552431Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.1552527Z               "line": 511
2026-06-09T09:52:59.1552612Z             },
2026-06-09T09:52:59.1552698Z             {
2026-06-09T09:52:59.1552819Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-09T09:52:59.1552917Z               "line": 564
2026-06-09T09:52:59.1553007Z             },
2026-06-09T09:52:59.1553092Z             {
2026-06-09T09:52:59.1553216Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1553300Z               "line": 69
2026-06-09T09:52:59.1553395Z             },
2026-06-09T09:52:59.1553477Z             {
2026-06-09T09:52:59.1553601Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1553690Z               "line": 133
2026-06-09T09:52:59.1553778Z             },
2026-06-09T09:52:59.1553859Z             {
2026-06-09T09:52:59.1553977Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1554083Z               "line": 243
2026-06-09T09:52:59.1554173Z             },
2026-06-09T09:52:59.1554268Z             {
2026-06-09T09:52:59.1554397Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1554488Z               "line": 399
2026-06-09T09:52:59.1554592Z             },
2026-06-09T09:52:59.1554678Z             {
2026-06-09T09:52:59.1554808Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1554902Z               "line": 527
2026-06-09T09:52:59.1555003Z             },
2026-06-09T09:52:59.1555103Z             {
2026-06-09T09:52:59.1555226Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1555337Z               "line": 541
2026-06-09T09:52:59.1555432Z             },
2026-06-09T09:52:59.1555540Z             {
2026-06-09T09:52:59.1555664Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1555769Z               "line": 596
2026-06-09T09:52:59.1555876Z             },
2026-06-09T09:52:59.1555962Z             {
2026-06-09T09:52:59.1556068Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1556158Z               "line": 627
2026-06-09T09:52:59.1556243Z             },
2026-06-09T09:52:59.1556335Z             {
2026-06-09T09:52:59.1556454Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1556543Z               "line": 52
2026-06-09T09:52:59.1556630Z             },
2026-06-09T09:52:59.1556716Z             {
2026-06-09T09:52:59.1556840Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1556930Z               "line": 123
2026-06-09T09:52:59.1557022Z             },
2026-06-09T09:52:59.1557106Z             {
2026-06-09T09:52:59.1557226Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1557313Z               "line": 198
2026-06-09T09:52:59.1557402Z             },
2026-06-09T09:52:59.1557483Z             {
2026-06-09T09:52:59.1557698Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1557803Z               "line": 230
2026-06-09T09:52:59.1557884Z             },
2026-06-09T09:52:59.1557976Z             {
2026-06-09T09:52:59.1558088Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1558190Z               "line": 261
2026-06-09T09:52:59.1558361Z             },
2026-06-09T09:52:59.1558441Z             {
2026-06-09T09:52:59.1558570Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1558671Z               "line": 284
2026-06-09T09:52:59.1558769Z             },
2026-06-09T09:52:59.1558850Z             {
2026-06-09T09:52:59.1559060Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1559155Z               "line": 302
2026-06-09T09:52:59.1559262Z             },
2026-06-09T09:52:59.1559366Z             {
2026-06-09T09:52:59.1559495Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1559595Z               "line": 312
2026-06-09T09:52:59.1559690Z             },
2026-06-09T09:52:59.1559799Z             {
2026-06-09T09:52:59.1559920Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1560033Z               "line": 324
2026-06-09T09:52:59.1560129Z             },
2026-06-09T09:52:59.1560216Z             {
2026-06-09T09:52:59.1560357Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1560448Z               "line": 334
2026-06-09T09:52:59.1560554Z             },
2026-06-09T09:52:59.1560638Z             {
2026-06-09T09:52:59.1560742Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1560833Z               "line": 94
2026-06-09T09:52:59.1560918Z             },
2026-06-09T09:52:59.1561003Z             {
2026-06-09T09:52:59.1561122Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1561213Z               "line": 120
2026-06-09T09:52:59.1561303Z             },
2026-06-09T09:52:59.1561388Z             {
2026-06-09T09:52:59.1561513Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1561603Z               "line": 135
2026-06-09T09:52:59.1561694Z             },
2026-06-09T09:52:59.1561776Z             {
2026-06-09T09:52:59.1561895Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1561989Z               "line": 162
2026-06-09T09:52:59.1562071Z             },
2026-06-09T09:52:59.1562161Z             {
2026-06-09T09:52:59.1562271Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1562366Z               "line": 174
2026-06-09T09:52:59.1562449Z             },
2026-06-09T09:52:59.1562533Z             {
2026-06-09T09:52:59.1562652Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1562740Z               "line": 185
2026-06-09T09:52:59.1562815Z             },
2026-06-09T09:52:59.1562900Z             {
2026-06-09T09:52:59.1563016Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1563102Z               "line": 451
2026-06-09T09:52:59.1563181Z             },
2026-06-09T09:52:59.1563273Z             {
2026-06-09T09:52:59.1563398Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1563496Z               "line": 555
2026-06-09T09:52:59.1563581Z             },
2026-06-09T09:52:59.1563676Z             {
2026-06-09T09:52:59.1563794Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1563894Z               "line": 171
2026-06-09T09:52:59.1563984Z             },
2026-06-09T09:52:59.1564071Z             {
2026-06-09T09:52:59.1564194Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.1564289Z               "line": 65
2026-06-09T09:52:59.1564395Z             },
2026-06-09T09:52:59.1564485Z             {
2026-06-09T09:52:59.1564614Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.1564705Z               "line": 71
2026-06-09T09:52:59.1564800Z             },
2026-06-09T09:52:59.1564894Z             {
2026-06-09T09:52:59.1565129Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-09T09:52:59.1565224Z               "line": 77
2026-06-09T09:52:59.1565311Z             },
2026-06-09T09:52:59.1565405Z             {
2026-06-09T09:52:59.1565515Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1565748Z               "line": 778
2026-06-09T09:52:59.1565844Z             },
2026-06-09T09:52:59.1565926Z             {
2026-06-09T09:52:59.1566049Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1566143Z               "line": 795
2026-06-09T09:52:59.1566229Z             },
2026-06-09T09:52:59.1566319Z             {
2026-06-09T09:52:59.1566423Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1566517Z               "line": 838
2026-06-09T09:52:59.1566603Z             },
2026-06-09T09:52:59.1566695Z             {
2026-06-09T09:52:59.1566803Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1566890Z               "line": 981
2026-06-09T09:52:59.1566985Z             },
2026-06-09T09:52:59.1567071Z             {
2026-06-09T09:52:59.1567180Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1567267Z               "line": 1131
2026-06-09T09:52:59.1567352Z             }
2026-06-09T09:52:59.1567447Z           ]
2026-06-09T09:52:59.1567534Z         },
2026-06-09T09:52:59.1567620Z         "int": {
2026-06-09T09:52:59.1567715Z           "complete": true,
2026-06-09T09:52:59.1567824Z           "evidence": [
2026-06-09T09:52:59.1567915Z             {
2026-06-09T09:52:59.1568048Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T09:52:59.1568144Z               "line": 569
2026-06-09T09:52:59.1568230Z             },
2026-06-09T09:52:59.1568324Z             {
2026-06-09T09:52:59.1568444Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-09T09:52:59.1568545Z               "line": 135
2026-06-09T09:52:59.1568630Z             }
2026-06-09T09:52:59.1568730Z           ]
2026-06-09T09:52:59.1568841Z         },
2026-06-09T09:52:59.1568935Z         "unit": {
2026-06-09T09:52:59.1569130Z           "complete": true,
2026-06-09T09:52:59.1569226Z           "evidence": [
2026-06-09T09:52:59.1569339Z             {
2026-06-09T09:52:59.1569468Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1569579Z               "line": 571
2026-06-09T09:52:59.1569677Z             },
2026-06-09T09:52:59.1569764Z             {
2026-06-09T09:52:59.1569888Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1569978Z               "line": 620
2026-06-09T09:52:59.1570064Z             },
2026-06-09T09:52:59.1570151Z             {
2026-06-09T09:52:59.1570274Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-09T09:52:59.1570369Z               "line": 689
2026-06-09T09:52:59.1570456Z             },
2026-06-09T09:52:59.1570541Z             {
2026-06-09T09:52:59.1570660Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1570757Z               "line": 462
2026-06-09T09:52:59.1570841Z             },
2026-06-09T09:52:59.1570932Z             {
2026-06-09T09:52:59.1571052Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1571142Z               "line": 499
2026-06-09T09:52:59.1571231Z             },
2026-06-09T09:52:59.1571321Z             {
2026-06-09T09:52:59.1571441Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1571529Z               "line": 894
2026-06-09T09:52:59.1571619Z             },
2026-06-09T09:52:59.1571706Z             {
2026-06-09T09:52:59.1571821Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1571915Z               "line": 916
2026-06-09T09:52:59.1571992Z             },
2026-06-09T09:52:59.1572078Z             {
2026-06-09T09:52:59.1572187Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1572297Z               "line": 933
2026-06-09T09:52:59.1572388Z             },
2026-06-09T09:52:59.1572569Z             {
2026-06-09T09:52:59.1572708Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1572794Z               "line": 948
2026-06-09T09:52:59.1572883Z             },
2026-06-09T09:52:59.1572970Z             {
2026-06-09T09:52:59.1573122Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1573328Z               "line": 974
2026-06-09T09:52:59.1573408Z             },
2026-06-09T09:52:59.1573498Z             {
2026-06-09T09:52:59.1573614Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-09T09:52:59.1573704Z               "line": 457
2026-06-09T09:52:59.1573794Z             },
2026-06-09T09:52:59.1573866Z             {
2026-06-09T09:52:59.1573991Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-09T09:52:59.1574075Z               "line": 338
2026-06-09T09:52:59.1574165Z             },
2026-06-09T09:52:59.1574246Z             {
2026-06-09T09:52:59.1574354Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1574449Z               "line": 1260
2026-06-09T09:52:59.1574530Z             },
2026-06-09T09:52:59.1574616Z             {
2026-06-09T09:52:59.1574730Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-09T09:52:59.1574825Z               "line": 130
2026-06-09T09:52:59.1574908Z             }
2026-06-09T09:52:59.1574998Z           ]
2026-06-09T09:52:59.1575083Z         }
2026-06-09T09:52:59.1575164Z       }
2026-06-09T09:52:59.1575251Z     },
2026-06-09T09:52:59.1575332Z     {
2026-06-09T09:52:59.1575426Z       "id": "REQ-UPD-7",
2026-06-09T09:52:59.1577607Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-09T09:52:59.1577736Z       "requiredStages": [
2026-06-09T09:52:59.1577827Z         "impl",
2026-06-09T09:52:59.1577932Z         "unit"
2026-06-09T09:52:59.1578016Z       ],
2026-06-09T09:52:59.1578109Z       "stages": {
2026-06-09T09:52:59.1578189Z         "doc": {
2026-06-09T09:52:59.1578284Z           "complete": false,
2026-06-09T09:52:59.1578370Z           "evidence": []
2026-06-09T09:52:59.1578457Z         },
2026-06-09T09:52:59.1578537Z         "impl": {
2026-06-09T09:52:59.1578632Z           "complete": true,
2026-06-09T09:52:59.1578724Z           "evidence": [
2026-06-09T09:52:59.1578809Z             {
2026-06-09T09:52:59.1578919Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1579077Z               "line": 1813
2026-06-09T09:52:59.1579175Z             }
2026-06-09T09:52:59.1579271Z           ]
2026-06-09T09:52:59.1579358Z         },
2026-06-09T09:52:59.1579444Z         "int": {
2026-06-09T09:52:59.1579537Z           "complete": false,
2026-06-09T09:52:59.1579637Z           "evidence": []
2026-06-09T09:52:59.1579718Z         },
2026-06-09T09:52:59.1579805Z         "unit": {
2026-06-09T09:52:59.1579899Z           "complete": true,
2026-06-09T09:52:59.1579995Z           "evidence": [
2026-06-09T09:52:59.1580082Z             {
2026-06-09T09:52:59.1580181Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1580276Z               "line": 7381
2026-06-09T09:52:59.1580353Z             }
2026-06-09T09:52:59.1580438Z           ]
2026-06-09T09:52:59.1580519Z         }
2026-06-09T09:52:59.1580605Z       }
2026-06-09T09:52:59.1580687Z     },
2026-06-09T09:52:59.1580767Z     {
2026-06-09T09:52:59.1580862Z       "id": "REQ-UPD-8",
2026-06-09T09:52:59.1583758Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-09T09:52:59.1584092Z       "requiredStages": [
2026-06-09T09:52:59.1584184Z         "impl",
2026-06-09T09:52:59.1584269Z         "unit"
2026-06-09T09:52:59.1584354Z       ],
2026-06-09T09:52:59.1584436Z       "stages": {
2026-06-09T09:52:59.1584542Z         "doc": {
2026-06-09T09:52:59.1584645Z           "complete": false,
2026-06-09T09:52:59.1584734Z           "evidence": []
2026-06-09T09:52:59.1584825Z         },
2026-06-09T09:52:59.1584906Z         "impl": {
2026-06-09T09:52:59.1585000Z           "complete": true,
2026-06-09T09:52:59.1585085Z           "evidence": [
2026-06-09T09:52:59.1585196Z             {
2026-06-09T09:52:59.1585328Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1585414Z               "line": 67
2026-06-09T09:52:59.1585505Z             },
2026-06-09T09:52:59.1585586Z             {
2026-06-09T09:52:59.1585709Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1585802Z               "line": 46
2026-06-09T09:52:59.1585887Z             },
2026-06-09T09:52:59.1585972Z             {
2026-06-09T09:52:59.1586082Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1586191Z               "line": 90
2026-06-09T09:52:59.1586277Z             },
2026-06-09T09:52:59.1586368Z             {
2026-06-09T09:52:59.1586488Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1586573Z               "line": 153
2026-06-09T09:52:59.1586659Z             },
2026-06-09T09:52:59.1586736Z             {
2026-06-09T09:52:59.1586854Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1586950Z               "line": 168
2026-06-09T09:52:59.1587032Z             },
2026-06-09T09:52:59.1587122Z             {
2026-06-09T09:52:59.1587240Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1587325Z               "line": 185
2026-06-09T09:52:59.1587407Z             },
2026-06-09T09:52:59.1587500Z             {
2026-06-09T09:52:59.1587608Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1587695Z               "line": 207
2026-06-09T09:52:59.1587787Z             },
2026-06-09T09:52:59.1587862Z             {
2026-06-09T09:52:59.1587981Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1588063Z               "line": 66
2026-06-09T09:52:59.1588149Z             },
2026-06-09T09:52:59.1588229Z             {
2026-06-09T09:52:59.1588349Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-09T09:52:59.1588439Z               "line": 154
2026-06-09T09:52:59.1588524Z             },
2026-06-09T09:52:59.1588611Z             {
2026-06-09T09:52:59.1588711Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1588801Z               "line": 1705
2026-06-09T09:52:59.1588877Z             },
2026-06-09T09:52:59.1589064Z             {
2026-06-09T09:52:59.1589173Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1589259Z               "line": 1760
2026-06-09T09:52:59.1589346Z             },
2026-06-09T09:52:59.1589426Z             {
2026-06-09T09:52:59.1589526Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1589613Z               "line": 1770
2026-06-09T09:52:59.1589703Z             },
2026-06-09T09:52:59.1589923Z             {
2026-06-09T09:52:59.1590022Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1590112Z               "line": 1777
2026-06-09T09:52:59.1590192Z             },
2026-06-09T09:52:59.1590278Z             {
2026-06-09T09:52:59.1590379Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1590560Z               "line": 1814
2026-06-09T09:52:59.1590647Z             },
2026-06-09T09:52:59.1590727Z             {
2026-06-09T09:52:59.1590841Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1590923Z               "line": 480
2026-06-09T09:52:59.1591008Z             },
2026-06-09T09:52:59.1591089Z             {
2026-06-09T09:52:59.1591194Z               "path": "crates/xtask/src/main.rs",
2026-06-09T09:52:59.1591285Z               "line": 494
2026-06-09T09:52:59.1591371Z             }
2026-06-09T09:52:59.1591456Z           ]
2026-06-09T09:52:59.1591534Z         },
2026-06-09T09:52:59.1591619Z         "int": {
2026-06-09T09:52:59.1591714Z           "complete": false,
2026-06-09T09:52:59.1591805Z           "evidence": []
2026-06-09T09:52:59.1591891Z         },
2026-06-09T09:52:59.1591971Z         "unit": {
2026-06-09T09:52:59.1592071Z           "complete": true,
2026-06-09T09:52:59.1592158Z           "evidence": [
2026-06-09T09:52:59.1592244Z             {
2026-06-09T09:52:59.1592371Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-09T09:52:59.1592461Z               "line": 456
2026-06-09T09:52:59.1592547Z             },
2026-06-09T09:52:59.1592627Z             {
2026-06-09T09:52:59.1592749Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-09T09:52:59.1592836Z               "line": 404
2026-06-09T09:52:59.1592928Z             },
2026-06-09T09:52:59.1593011Z             {
2026-06-09T09:52:59.1593112Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1593208Z               "line": 7383
2026-06-09T09:52:59.1593289Z             },
2026-06-09T09:52:59.1593374Z             {
2026-06-09T09:52:59.1593475Z               "path": "crates/spt/src/cli.rs",
2026-06-09T09:52:59.1593565Z               "line": 7405
2026-06-09T09:52:59.1593650Z             }
2026-06-09T09:52:59.1593732Z           ]
2026-06-09T09:52:59.1593819Z         }
2026-06-09T09:52:59.1593899Z       }
2026-06-09T09:52:59.1593984Z     }
2026-06-09T09:52:59.1594066Z   ],
2026-06-09T09:52:59.1594162Z   "findings": []
2026-06-09T09:52:59.1594248Z }
